任意文件的上传和下载

1.任意文件下载(高危)

  • 定义

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

  • 可以下载(参数没有限制)

可以通过../上一级的形式猜测下载配置文件,获取系统的账号密码

  • 挖洞的方式

一般链接形式:

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.正则严格判断用户输入参数的格式

  1. php.ini配置open_basedir限定文件访问范围

限制路径,只可以在这个路径下下载东西

2.任意文件上传(高危)

2.1客户端

通过js检测,在burp内抓包,将扩展名改为.php

检测代码出现script就是前端

上传.jpg的形式,在burp进行抓包

在burp里面更改文件扩展名

在upload里面存在hao.php

首先取消拦截,复制图片地址

http://10.0.0.130:91/upload/upload/hao.php

2.2 服务端

黑名单

上传特殊可解析后缀 .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点击


打开phpstudy 切换到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拖进一句话工具(随机插入在任何地方)

插入一句话木马 <?php @eval($_POST['123']);?>

右键打开图片可以看见有一句话木马

右键复制图片地址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,不会被删掉

上传重命名竞争+Apache解析漏洞

把php改名了

发送给测试器快速点发送

可能会有一个两个没有被改名字

相关推荐
Clockwiseee2 小时前
RCE常见姿势
安全·web安全·网络安全
denglei.2 小时前
在Nginx部署Web应用,如何保障后端API的安全
nginx·安全
Smile灬凉城6663 小时前
robots协议
安全·php·robots
Hacker_Nightrain5 小时前
网络安全与加密
安全·web安全
网安-轩逸7 小时前
汽车网络安全渗透测试
安全·web安全·汽车
几维安全8 小时前
如何通过运行时威胁洞察提升反欺诈策略
运维·网络·安全
学习溢出9 小时前
【网络安全】John the Ripper 散列密码,PDF密码
安全·网络安全·pdf·哈希算法
黑客Jack9 小时前
什么是网络安全审计?
网络·安全·web安全
为几何欢9 小时前
【hackmymv】emma靶机wp
安全·网络安全·渗透·hackmyvm·hmv
Anna_Tong10 小时前
全局流量管理:提升用户体验与保障服务稳定性
运维·服务器·网络·数据库·安全·负载均衡