要上传的文件phpInfo.php
//文件内容
<?php
phpinfo();
?>
如何查看文件是否上传成功
Pass-01
将我们准备好的phpInfo.php文件上传,发现弹窗警告,说明前端进行了限制。
检查元素(F12),找到限制的地方,删除onsubmit中的内容
上传成功
Pass-02
显示源码,发现对我们上传文件的类型做了限制,只能上传图片中的三种类型
打开burpsuite进行抓包,修改Content-type为image/jpeg
上传成功
Pass-03
查看源码发现,这一关对尾缀进行了限制,.asp .aspx .php .jsp为后缀的文件不可以上传
用其他后缀替代被限制的后缀,抓包修改phpInfo的后缀
可以替换.php的后缀 :.php3 .php5 .pht .phtml .phtm .shtml .pwml
可以替换.jsp的后缀 :.jspx .jspf .jspa .jsw .jsv .jtml
可以替换.asp的后缀:.asa .asax .aspx .ascx .ashx .asmx
上传成功
Pass-04
这一关用到了一个windows的知识点——Windows对扩展名的修复,我们可以将文件名修改为phpInfo.php:1.jpg 因为无法识别冒号(在桌面新建一个文件,输入冒号试试),所以冒号及冒号之后的东西都会被舍弃,这样就还是phpInfo.php。
抓包修改filename为phpInfo.php:1.jpg
上传成功
Pass-05
同第四关,利用Windows对文件的扩展名修复,抓包修改filename为phpInfo.php:1.jpg
上传成功
Pass-06
查看源码发现没有对文件后缀名大小写进行限制,采用大写绕过
抓包修改phpInfo.php为phpInfo.PHP
上传成功
Pass-07
查看源码发现没有对文件名前后的空格进行限制,抓包修改filename 在phpInfo.php后加一个空格
上传成功
Pass-08
查看源码,发现没有对文件名之后输入点进行限制,那我们就在文件名之后加一个点
上传成功
Pass-09
查看源码发现没有对:: D A T A 进 行 限 制 , 所 以 我 们 在 p h p I n f o . p h p 后 加 上 : : DATA进行限制,所以我们在phpInfo.php后加上:: DATA进行限制,所以我们在phpInfo.php后加上::DATA
上传成功
Pass-10
没什么办法,那就只能windows文件扩展名修复了(万能的)
上传成功
Pass-11
查看源码可以发现黑名单中的后缀被str_ireplace函数转换成了空
采用双写绕过,抓包修改filename为phpInfo.pphphp,就算后缀中的额php被转换为了空,剩下的字母还会拼成php
上传成功