ubtuun怎么运行PHP文件,upload-labs通关

前言

由于对文件上传漏洞不是特别的熟悉,在网上找到了练习文件上传漏洞的靶场进行练习,加深自己的印象。

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

靶机包含漏洞类型分类:

be867cc660abb5b872285e6b49858b85.png

通关笔记

PASS 1

第一关通过前端js进行验证,不允许上传.php类型文件

ff3c889ee8e6eed84f8d54479528cca0.png

(1)可以将php文件修改为后缀为.jpg后缀文件,在通过burp抓包进行修改

31abe580a57a8227ab19644981593b8f.png

96dd844a02c6730de3e7237e2b3158d5.png

ec81f081deeab84abc453a3805f82350.png

(2)通过修改前端代码添加.php文件进行上传

070a39f0d9bfccbeecc98aa8e052449b.png

aa850e1cc203f6fae94ed5ceacc215e0.png

PASS 2

第二关通过服务端对数据包的MIME进行检查

通过burp修改Content-Type类型

ca8c0a3d1ae518e184fa199ddedd48b0.png

03e2c9464c644b748d5ac31a3bdbec9e.png

PASS 3

第三关禁止上传.asp|.aspx|.php|.jsp后缀文件,可以尝试上传后缀php3,php5的文件进行上传

d38102b88db50fc4db292217cbbbd4ef.png

83e4f94f307d20f2b4152c38aece6ea9.png

PASS 4

第四关禁止常见的后缀文件

da2b09d30c74cdff8196d578de72495a.png

可以尝试使用.htaccess重写文件解析绕过

SetHandler application/x-httpd-php

37d63008437b1b5e3d48d7769de13971.png

在上传一个4.jpg文件上传成功后.jpg文件就会以,php文件运行

测试成功

da9040e9f1934d867b0a9975d0bb553b.png

PASS 5

第五关禁止了常见后缀文件也包括了.htaccess

38b85ce753fc7a0e35945c05574170f7.png

更改后缀名大小写进行绕过

4cc5875b68742f735a767ccfec4b1ba8.png

PASS 6

第六关禁止常见后缀与大小写混用绕过

可以使用后缀加空格进行绕过

414b02d67c343188fc1b8717b112eaa0.png

PASS 7

第七关禁止上传所有可以解析的后缀

使用windows加.绕过(对文件命名时最后一个字符为.会自动忽略)

ac5d84d04cbdbc914a3190ea174a6bab.png

e4657e0ed5e3120bf04d0f11643472e5.png

PASS 8

使用windows::$DATA绕过绕过

99a071b2263efa71ac9604150aa1e1c6.png

PASS 9

第九关只允许上传.jpg|.png|.gif后缀的文件

8652031df40f796e226589d58627226f.png

使用.php. .进行绕过

4ca07ac53d1f5f34bdc4bb2cffd6b781.png

PASS 10

通过源码可知回去除脚本后缀,源码中将可以当成php解析的后缀都替换成空

fdb3cbd7716af652d99748fc5ee75e8b.png

使用双写进行绕过

3d4668567c3be14a9270ddc8e1bb595a.png

PASS 11

使用%00截断进行上传

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

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

e77b4df1ec438c2617e5c8415849b87b.png

上传成功

a3312d8e73007646dd29ee0bb33b4b31.png

293838bcfc18410db20efd392162022b.png

PASS 12

与第十一关差不多将get改为了post

可以使用十六进制00截断漏洞绕过白名单

22246cf5475a719003d54cbb4956d795.png

PASS 13

检查图标内容开头2个字节

使用图片马进行上传获取webshell

最后使用文件包含漏洞进行利用

48f4a368b4ebfd62f25d9b63dc42cca5.png

PASS 14

第十四关使用getimagesize()检查是否为图片文件

使用edjpgcom工具将一句话插入图片中进行上传

这里我只尝试了一种

c7cc27c29d51e04e601ff3acedd169bf.png

PASS 15

第十五关使用exif_imagetype()检查是否为图片文件

这里使用第14关的图片马就可以上传

652a33eb82d17cdb5a285e24e5e43631.png

PASS 16

第16关重新渲染了图片

使用之前的图片马进行上传

上传之前将木马写在最后

26a2ee82464f2e6296360fbf060b4e3e.png

上传成功后会生成一张新的图片代替原来的图片

可以看到写入的木马文件被修改

89cbeb514d1676c486bfab56991599ca.png

我们只需要找到渲染前后没有变化的位置,然后将php代码写进去,就可以成功上传带有php代码的图片了

PASS 17

第十七关需要代码审计

需要通过条件竞争漏洞不断请求资源,利用burp不断请求资源,然后不断在浏览器中访问最终上传成功

PASS 18

同第十七关差不多,采用了竞争上传与白名单

参考大佬的通过笔记知道可以利用上传重命名竞争+Apache解析漏洞 不断发包

最终直接通过菜刀连接

PASS 19

d2466a2782cab53f67cdb1539caf13d8.png

CVE-2015-2348

move_uploaded_file() 00截断,上传webshell,同时自定义保存名称,直接保存为php是不行的

发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过

c9e0685ae0137a92c37cc09bbf02df9c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值