一、搭建upload-labs环境
将下载好的upload-labs的压缩包,将此压缩包解压到WWW中,并将名称修改为upload,同时也要在upload文件中建立一个upload的文件。
然后在浏览器网址栏输入:127.0.0.1/upload进入靶场。
第一关
选择上传文件,这时我们会发现此时有提示框弹出,在弹框中说明请上传.jpg|.png|.gif类型的文件
这时我们可以查看代码
通过代码我们可以看出该用于限制文件过滤的函数是通过JavaScript运行的,所以我们可以通过浏览器的设置-->隐私和安全--->找到Javascript将其关掉
此时,我们会发现显示源码什么的都是点不动的,但是选择文件是可以点的动的,所以此时我们可以上传文件,会发现上传成功。
第二关
我们试着上传一下第一关所用的web.php,这时会给我们提示:文件类型不正确,请重新上传!,说明这一关不是通过JavaScript运行的,同时在代码里面也没有找到checkFile(),所以第二关有很大的概率是在后端验证的。我们通过Burp Suite进行抓包
这里我们可以看到内容协议是 Content-Type: application/octet-stream,所以我们可以传到Repeater对Content-Type进行修改,并将内容协议改为image/jpeg,在尝试是否上传成功
可见这是成功的。
第三关(黑名单)
查看提示信息,不允许上传.asp,.aspx,.php,.jsp后缀文件!
查看代码
php文件的后缀一般为:phtml、php、php3、pHtml。
此时我们可以使用Burp Suite进行抓包,并对文件后缀进行修改为php3就可以成功。
第四关
查看提示
是基于黑名单的方式,这一关利用重写文件解析规则绕过 上传.htaccess文件
在文件中书写“Sethandler application/x-httpd-php”,然后进行上传.htaccess文件,但是该文件和.jpg要在同一个文件夹下。
第五关
查看提示
将后缀.php修改为.PHP,然后进行上传
第六关
查看提示
用Burp Suite中进行抓包,并且在Burp Suite中修改其上传名加上 “空格” 进行绕过代码
第七关
查看提示
这一关还是比较好过的,可以在Burp Suite中对文件的后缀加一个点,例如:“.php.. ”就可以绕过。
第八关
查看提示
这里没有过滤 ::$DATA 利用 Windows文件流特性绕过 构造8.php::$DATA 会被保存为8.php