复现文件上传漏洞(靶场练习)

最近越来越感觉菜了,又把各种漏洞基础原理深入理解玩了玩,巩固一下。然后找到一个不错的上传漏洞汇总的靶场,记录一下。

靶场源码地址:github.com/c0ny1/upload-labs

我这里为了方便,就下载了靶主已经集成配置好的环境进行本地搭建。地址:github.com/c0ny1/upload-labs/releases

本地搭建好是下面这个页面:

复现文件上传漏洞(靶场练习)_第1张图片

考察点:

复现文件上传漏洞(靶场练习)_第2张图片

 

直接开始

 

第一关

查看提示

复现文件上传漏洞(靶场练习)_第3张图片

直接利用Burp Suite代理改后缀 ,或者利用插件禁用js。

复现文件上传漏洞(靶场练习)_第4张图片

成功上传 

复现文件上传漏洞(靶场练习)_第5张图片

 

第二关

查看提示

复现文件上传漏洞(靶场练习)_第6张图片

利用Burp Suite修改Content-Type类型为 image/jpeg 

成功上传

复现文件上传漏洞(靶场练习)_第7张图片

 

第三关

查看提示

复现文件上传漏洞(靶场练习)_第8张图片

修改后缀为php3依然会被解析

复现文件上传漏洞(靶场练习)_第9张图片

 

成功上传

复现文件上传漏洞(靶场练习)_第10张图片

 

第四关

查看提示

复现文件上传漏洞(靶场练习)_第11张图片

基于黑名单的方式,这一关利用重写文件解析规则绕过    上传.htaccess文件(基于黑名单)

大概原理:

Apache中当上传到文件全部被解析为.jpg的后缀时。可以尝试一下后缀为.htaccess的文件。


SetHandler application/x-httpd-php

代码的含义 是 将上传的文件后缀名为.jpg格式的文件以 php格式来解析文件成功绕过

上传

复现文件上传漏洞(靶场练习)_第12张图片

菜刀连接一下

可以直接用菜刀连接  http://127.0.0.1/upload/4.jpg

复现文件上传漏洞(靶场练习)_第13张图片

 

第五关

查看提示

复现文件上传漏洞(靶场练习)_第14张图片

这里无法使用.htaccess文件绕过

利用PHP 和 Windows环境的叠加特性,以下符号在正则匹配时的相等性:

双引号"     =   点号.
大于符号>   =   问号?
小于符号<   =   星号*

然后使用:截断上传, :截断上传会使文件为空,可以利用上述特性再次上传  5.<  覆盖写入shell。

复现文件上传漏洞(靶场练习)_第15张图片

成功上传,但是大小为0KB。

再次上传

成功写入

 

参考链接:  www.waitalone.cn/php-windows-upload.html

第六关

查看提示

复现文件上传漏洞(靶场练习)_第16张图片

依旧是黑名单过滤,查看源代码

复现文件上传漏洞(靶场练习)_第17张图片

还是利用Windows系统的文件名特性,文件名中不能出现点,冒号,空格等符号的特性,会直接消除

会被windows系统自动去掉不符合规则符号后面的内容

 

复现文件上传漏洞(靶场练习)_第18张图片

在Burp Suite中修改其上传名加上 空格 绕过代码。

复现文件上传漏洞(靶场练习)_第19张图片

成功上传

 

 

复现文件上传漏洞(靶场练习)_第20张图片

 

第七关

查看提示

复现文件上传漏洞(靶场练习)_第21张图片

查看源代码

复现文件上传漏洞(靶场练习)_第22张图片

与上一关相比,并没有删除点   可以最后加点绕过

复现文件上传漏洞(靶场练习)_第23张图片

成功

复现文件上传漏洞(靶场练习)_第24张图片

 

第八关

查看提示

复现文件上传漏洞(靶场练习)_第25张图片

查看源代码

复现文件上传漏洞(靶场练习)_第26张图片

这里没有过滤 ::$DATA 利用 Windows文件流特性绕过 构造8.php::$DATA 会被保存为8.php

当然我们也可以通过构造8.php. .  点空格点 绕过函数校验。

这里就演示构造8.php::$DATA

复现文件上传漏洞(靶场练习)_第27张图片

复现文件上传漏洞(靶场练习)_第28张图片

第九关

查看提示

复现文件上传漏洞(靶场练习)_第29张图片

查看源代码

复现文件上传漏洞(靶场练习)_第30张图片

依然是黑名单校验加文件名处理

这里就利用上一关的第二种方式绕过

复现文件上传漏洞(靶场练习)_第31张图片

成功

复现文件上传漏洞(靶场练习)_第32张图片

 

第十关

查看提示

复现文件上传漏洞(靶场练习)_第33张图片

会去除脚本后缀,可以通过双写绕过

复现文件上传漏洞(靶场练习)_第34张图片

可以看到保存为10.php

复现文件上传漏洞(靶场练习)_第35张图片

 

第十一关

查看提示

复现文件上传漏洞(靶场练习)_第36张图片

抓包

复现文件上传漏洞(靶场练习)_第37张图片

补充点知识:

截断条件: php版本小于5.3.4   大于此版本的修复了

php的magic_quotes_gpcOFF状态  这函数是魔术引号,会对敏感的字符转义的 空就会被转义加个反斜杠

因为我们是集成包,所以环境一切都是完美的~~~

 

利用截断,构造路径    文件名就会被截断啦。

复现文件上传漏洞(靶场练习)_第38张图片

成功

复现文件上传漏洞(靶场练习)_第39张图片

 

第十二关

查看提示

复现文件上传漏洞(靶场练习)_第40张图片

老样子,抓包修改

复现文件上传漏洞(靶场练习)_第41张图片

提交方式不一样而已 构造0x00截断 这里在16进制改加个分号方便查找进行修改

复现文件上传漏洞(靶场练习)_第42张图片

复现文件上传漏洞(靶场练习)_第43张图片

成功

复现文件上传漏洞(靶场练习)_第44张图片

 

第十三关

复现文件上传漏洞(靶场练习)_第45张图片

只需将图片马上传即可,后期可以利用文件包含漏洞实现getshell

查看提示

复现文件上传漏洞(靶场练习)_第46张图片

这里进行了上传文件头检测

我们在我们的上传文件 加入jpg,png,gif的文件头

复现文件上传漏洞(靶场练习)_第47张图片

这里是16进制 可以用winhex进行查看修改          或者直接构造图片马(下一题)

提交

复现文件上传漏洞(靶场练习)_第48张图片

等效16进制

成功,文件已经重命名

复现文件上传漏洞(靶场练习)_第49张图片

- - 偷偷懒就不写jpg和png了

 

第十四关

查看提示

复现文件上传漏洞(靶场练习)_第50张图片

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息,我们在图片中插入一句话并且可以正常显示图片绕过此函数。

构造图片马

准备一张正常的图,和一句话木马  在命令行

copy 1.jpg /b + 1.php  14.jpg                 

参数/b指定以二进制格式复制、合并文件; 用于图像类/声音类文件  

意思是将1.jpg以二进制与1.php合并成14.jpg  14.jpg就是图片马 记事本方式打开一句话木马被插在最后

复现文件上传漏洞(靶场练习)_第51张图片

上传

复现文件上传漏洞(靶场练习)_第52张图片

- - 然后就失败了,我试了试正常的jpg图片也不行。png和gif的通过

复现文件上传漏洞(靶场练习)_第53张图片

 

第十五关

查看提示

复现文件上传漏洞(靶场练习)_第54张图片

这一关拿上一次生成的jpg马就可以上传~    

复现文件上传漏洞(靶场练习)_第55张图片

第十六关

查看提示

复现文件上传漏洞(靶场练习)_第56张图片

查看源代码

复现文件上传漏洞(靶场练习)_第57张图片

二次渲染- - 

根据用户上传的图片,生成一个新的图片,然后删除用户上传的原始图片,将新图片存储到数据库中。

从其他writeup找的过渲染的图片马(强)

和这个损坏的jpg警告提示报错,但是依旧成功上传,并且没有重命名。

- - 自己想了不少姿势,想打组合拳,都没有bypass。

 

第十七关

查看提示

复现文件上传漏洞(靶场练习)_第58张图片

复现文件上传漏洞(靶场练习)_第59张图片

上传php文件会被删除 利用条件竞争漏洞,不断请求资源,在删除文件之间请求该文件。

'); ?>

本地没有复现成功- - , 然后用第五关的姿势也是得到了getshell

 

第十八关

代码审计

参考别人的writeup(待补充原理~)     利用上传重命名竞争+Apache解析漏洞  不断发包

复现文件上传漏洞(靶场练习)_第60张图片

可用菜刀直接连接

 

第十九关

查看提示

复现文件上传漏洞(靶场练习)_第61张图片

CVE-2015-2348

move_uploaded_file() 00截断,上传webshell,同时自定义保存名称,直接保存为php是不行的 
发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过: 
 

构造

复现文件上传漏洞(靶场练习)_第62张图片

或者

复现文件上传漏洞(靶场练习)_第63张图片

均可绕过

 

复现了听过没实际操作过或者没了解过的姿势。同一关卡可以有不同姿势,也是有待研究和补充的。

 

 

 

参考链接:github.com/LandGrey/upload-labs-writeup       

 

 

你可能感兴趣的:(漏洞利用)