upload通关攻略
PASS-1(js检测)
文件后缀为: jpg/png/gif这三种
若想上传一个php文件,直接将该文件的后缀改为以上三种中之一,就可以成功上传。
可以先上传一个.jpg的文件,然后用burpsuit抓包
抓住流量然后 crtl+R修改文件后缀,然后send
然后访问浏览器打开http:llupload-labs/upload/1.php,可以查看到该文件,说明文件上传成功
PASS-2(MIME类型)
首先先随便下载一个php文件((或者自己写的),打开代理服务器,phpstudy,打开burp suite,将php文件上传,使用burp suite软件进行抓包,因为上传的是Php文件,因此content-type的类型不是服务器认可的类型,那么我们就可以使用burpsuite进行修改该文件类型,并将该文件进行上传。
鼠标右键->发送给Repeater
此时文件类型并不是服务器所允许的,那么我们可以尝试更改它的类型,使它可以成功上传将文件类型修改为imageljpeg并点击发送就可以看到右边的响应数据
然后浏览器访问http:llupload-labs/upload/phpinfo.php,能显示出来就能成功
PASS-3(文件后缀名)
上传可解析的文件后缀名
黑名单绕过:本题不允许上传文件名后缀为asp].aspx|.php].jsp的文件
虽然用黑名单不允许上传.asp,.aspx,.php,.jsp后缀的文件
但可以上传.phtml .phps .php5 .pht
前提是apache的httpd.conf中有如下配置代码
1 |AddType application/x-httpd-php .php .phtml .phps .php5 .pht
用burpsuit抓包,鼠标右键->发送给Repeater
然后浏览器访问http:llupload-labs/upload/202202240905071492.php5,能显示出来就能成功
PASS-4(.htaccess绕过)
黑名单拒绝了几乎所有有问题的后缀名,除了.htaccess前提条件( 1.mod_rewrite模块开启。2.Allowoverride All )因此先上传一个.htaccess文件,内容如下:
<FilesMatch "x.jpg(即将上传的文件名)">
SetHandler application/x-httpd-php
</FilesMatch>
上传.htaccess文件,然后再上传.jpg图片马
然后浏览器访问http:llupload-labs/upload/phpinfo.jpg,能显示出来就能成功
PASS-5 (大小写绕过)
黑名单中.htaccess已被列出,不允许上传该文件
可以看出,该代码中禁用后缀名为.php].php5...lpHp...,该代码没有将文件名转化为小写。
但没有禁用.PHPI.Phpl.phP
用burpsuit抓包,鼠标右键->发送给Repeater
然后浏览器访问http:llupload-labs/upload/202202240925547785.phP,能显示出来就能成功
就这样upload-labs的前五关就做好了。