upload-labs靶场的第12关过关报告

所用工具:phpstudy,upload-lab,win10 x64,burpsuite

首先进行分析:因为(源代码第八行)对文件名进行了拼接的,所以可以用(get)%00截断绕过。原理:%00是一个url的编码,代码中move_uploaded_file()函数遇见0x00(0x表示16进制,后面跟着的是两个16进制的0)就会截断,而url把%00解码就是0x00。
1、这一关需要的版本要小于5.3.4,我用的是PHP-5.2.17,在phpStudy2018版本中进行版本修改,如下图所示:
2、同时需要关闭magic_quotes_gpc,这个选项是用来防止sql注入的,会对$_REQUEST、$_POST、$_GRT、$_COOKIE、$_SESSION等函数里的内容进行过滤,如:对内容中的单引号、双引号、<>这样的尖括号、NULL这样的字符等等都会加上转义字符。
操作如下图所示,依次进行选择:“其他选项菜单”-> “PHP扩展及设置”-> “参数开关设置”-> “magic_quotes_gpc”,取消选择即可。
3、此时该利用Burpsuite进行抓包了。但我遇到了一个问题,当我尝试使用Burp suite抓取本地测试环境的“http://127.0.0.1/upload-labs-master”数据包时,发现抓不到包,且尝试任何带有惠环地址127.0.0.1的网址数据都不能被捕获。经过不断尝试,我发现了两个可行方案,如下:
方法一:将127.0.0.1改为本机IP地址;
方法二:修改火狐浏览器相关配置。
我选择使用方法二,因为我发现当我使用本机IP地址(192.168.15.137)时搜索速度会变得很慢,因为相较于回环地址不用出本机,使用192.168.15.137时浏览器会将该地址层层转发到到目标服务器,浪费一些时间。
在方法二中,操作步骤如下:
(1)火狐浏览器中地址栏输入abhout:config,在跳转的界面中鼠标点击接受分析并继续。
(2)搜索框中搜索字符串localhost,点击network.proxy.allow_hijacking_locallhost,确认其状态由false转为true,效果如下图所示:

4、接着我准备了一个test.php文件,文件内容如下:

5、如果不做任何抓包后的修改操作,直接上传test.php文件,会显示提示信息,如下图所示,表明没有上传成功。
6、于是需要进行抓包并修改部分内容,流程如下图所示,先选择test.php文件,让后打开BurpSuite,在Proxy -> Intercept下面选择“Intercept on”,打开拦截。最后,再点击“上传”按钮。

  7、在第6步中成功抓到了数据包,内容如下图所示,此时需要在“save_path=../upload/”后面添加“init.php%00”,实现利用%00进行文件名的截断。同时需要将“filename”字段的文件名改为“test.jpg”,修改后结果如下:

  8、修改完后选择“Intercept off”,取消拦截,浏览器会将修改后的数据拿去给程序校验,从而顺利通过验证。结果如下图所示,可以看到没有任何提示信息,说明上传成功。
9、为了进一步验证test.php文件是否上传成功,我右键复制了上图中图片的链接地址,然后打开了蚁剑,进行添加数据,URL地址和连接密码如下图所示,随后点击了“测试连接”弹出来右下角的信息,表明连接成功,效果如下图所示:

 10、双击打开第9步中连接成功的URL地址,结果如下图所示,可以看到之前的test.php文件经过上传后成功变为了init.php文件,上传成功,顺利通过第12关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值