- 定义
一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。
- 可以下载(参数没有限制)
可以通过../上一级的形式猜测下载配置文件,获取系统的账号密码
- 挖洞的方式
一般链接形式:
download.php?path=
down.php?file=
data.php?file=
download.php?filename=
或者包含参数:
&Src=
&Inputfile=
&Filepath=
&Path=
&Data=
- 当遇到一个任意文件下载时,一般利用思路:
下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。
- 防御方法(漏洞修复)
1.过滤".",使用户在url中不能回溯上级目录
2.正则严格判断用户输入参数的格式
3. php.ini配置open_basedir限定文件访问范围
限制路径,只可以在这个路径下下载东西
通过js检测,在burp内抓包,将扩展名改为.php
检测代码出现script就是前端
上传.jpg的形式,在burp进行抓包
在burp里面更改文件扩展名
在upload里面存在hao.php
首先取消拦截,复制图片地址
http://10.0.0.130:91/upload/upload/hao.php
上传特殊可解析后缀 .php3 .php5 修改apache配置文件,加入,php3和.php5,重启
插入.php3或者.php5
http://10.0.0.130:91/upload/upload/202309121802212705.php3 不能解析
修改apache配置文件,加入,php3和.php5,重启
刷新页面,显示出来
.htaccess 先上传.htaccess文件,在上传ha.jpg,会被解析为.php
先上传.htaccess文件
上传hao.jpg图片
http://10.0.0.130:91/upload/upload/hao.jpg 会被解析为php
利用PHP和 Windows环境的叠加特性4.php:.jpg
通过抓包改文件名为4.php:.jpg,以4.<形式传输文件内容
上传jpg图片
通过burp抓包改为 4.php:.jpg
上传的为php形式,大小为零
找到放包的历史记录
文件名改为4.<或4.<<<或4.>>>或4.>><后
有了大小
http://10.0.0.130:91/upload/upload/4.php
大小写混合绕过,把1.php改为1.phP
改名为hao.phP
http://10.0.0.130:91/upload/upload/202309121935184766.phP
空格和点,写成1.php .
改名为 hao.php .
文件流特性绕过 ::$DATA
hao.php::$DATA
这个扩展名出不来
::$data 要把这个删掉
点空格点绕过 hao.php. .
文件名改为hao.php. .
双后缀名绕过 hao.pphphp
ISS低版本5.x-6.x
目录解析 文件夹目录的扩展名为脚本扩展名,下面无论是什么文件都会被当成脚本解析(asp.cdx.asa.cer等)
打开网站2,新建一个文件夹C:\wwwtest\XYCMS
没有权限
添加权限,重命名为123.asp
复制一个asp
改名为jpg
http://10.0.0.130:82/123.asp/123.jpg 访问
ISS低版本5.x-6.x 文件解析 123.asp;.jpg
浏览器访问为图片
改为123.asp;.jpg
http://10.0.0.130:82/123.asp;.jpg
IIS7.5解析漏洞 fix_pathinfo
在物理机搭建网站
在搜索栏输入iis点击
访问出现403 可以正常访问了
上传图片访问
是带有木马的图片
/.php加上这个
去掉这个勾
被解析了
apache 从右往左开始解析,直到认识的为止
命名为不认识的形式
nginx /.php fix_pathinfo与这个有关
切换中间件
将phpinfo.php改为phpinfo.jpg
应该为一个图片
/.php加上这个被解析为php
为0是被防御,为1存在漏洞
漏洞被防御
白名单00截断
条件:php版本要小于5.3.4,5.3.4及以上已经修复该问题;magic_quotes_gpc(魔术符号)需要为OFF状态
只能为.jpg形式
%00截断
hao.php%00 看一下版本 php版本要小于5.3.4,5.3.4及以上已经修复该问题;magic_quotes_gpc需要为OFF状态
二进制00截断
../upload/hao.php 多打几个空格,将第一个空格改为00
将第一个空格改为00
改完后如果不变恢复一下默认值,重启burp
直接访问木马即可
MIME绕过 Content-Type: image/gif 改头部信息
Content-Type: image/gif 改为这个
文件包含 将扩展名改为png 文件包含 图片和木马结合文件包含
将D:\VStart50\tools\漏洞利用\edjpgcom图片插入一句话工具中的test.jpg拖进一句话工具(随机插入在任何地方)
插入一句话木马
右键打开图片可以看见有一句话木马
右键复制图片地址http://10.0.0.130:91/upload/upload/3820230913144850.jpg
点击文件包含漏洞
参数给变量,无论是什么形式都以脚本(php)解析
拼接http://10.0.0.130:91/upload/include.php?file=./upload/3820230913144850.jpg 查看图片以脚本执行了
使用菜刀连接服务器
图片上传不了加头 上传的jpg图片右键查看变为gif要修改头
含有一句话木马的jpg格式上传不了
头部添加GIF89a
以头来命名
二次渲染
图片带有一句话木马传到服务器,服务器检测通过,通过函数把图片生成一个新的图片,以前的删掉,二次渲染的图片一句话木马就没有了
条件竞争
服务器先允许你上传文件,然后检测是否合法,不合法再删除,我们要利用的就是在服务器删除前,访问到我们上传的php。
快速上传快速访问,服务器生成一个文件,不会被删除
清除变量
开始攻击
会时不时出现一个文件
访问tj.php http://192.168.134.1:90/upload/upload/tj.php
抓一个包
发送给测试器
清除变量
线程数改为1
会生成一个新的qing.php
两个同时开启一个上传,一个访问
服务器生成一个新的qing.php
访问服务器生成的qing.php,不会被删掉
把php改名了
发送给测试器快速点发送
可能会有一个两个没有被改名字