Upload-labs靶场11-19关记录

道锋潜鳞
2020-04-13 / 0 评论 / 55 阅读 / 正在检测是否收录...

下午继续来打这个upload靶场

第十一关:

观察源码,发现存在字符拼接。黑名单被取而代之变成白名单。当有php环境中有两个截断条件:

1.php版本小于5.3.4 详情关注CVE-2006-7243

2.php的magic_quotes_gpc为OFF状态,便会有00截断,利用00截断上传。

因为我用的是php73,改成52进行试验

改为

上传成功

第十二关:

这里保存用了post方法,所以要用burp再16进制里面改,因为post不会像get对%00进行自动解码。

上传成功

第十三关:

上传图片马即可。copy normal.jpg /b + shell.php /a webshell.jpg

上传成功

第十四关:

和第十三关很类似,只不过变成imagesize校验。依然可以通过图片马绕过上传

上传成功

第十五关:

这里用到php_exif模块来判断文件类型,还是直接就可以利用图片马就可进行绕过:

不过,我起初多次测试,老是报错

然后我才发现,我exif模块没开,,,

上传成功

第十六关:

本关综合判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染,绕过方法:

上传成功

第十七关:

本关是条件竞争,查看代码:

这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell。
首先在burp中不断发送上传webshell的数据包

然后不断在浏览器中访问,发现通过竞争可以访问到:

第十八关:

和前一关非常类似,只不过结和前面几关的方法,对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功:

第十九关:

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

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

1

评论 (0)

取消