第四周学习
upload-labs
虚拟机搭建phpstudy2016,php版本5.2.17,其他版本不兼容一些关卡,会遇到各种问题
第一关(前端绕过)
前端中检查文件后缀,直接禁用js,或者删除check代码
F12,设置禁用js,上传即可
或者查看器搜索ckeckFile,双击删除这段代码,上传即可
上传成功
第二关(Content-Type 方法旁路)
上传一个.jpg文件抓包
Content-Type: image/jpeg
则上传php文件抓包把Content-Type改成一样的
上传成功
第三关(绕过黑名单)
前提修改apache的配置文件,把
查看源码,看到黑名单,则把php换成php3或者php5即可
则把php换成php3或者php5即可
上传成功
第四关(.htaccess 文件绕过)
即把文件名.htaccess 即可上传
再把一句话木马php文件改为jpg文件再上传
成功上传
第五关(后缀大小写旁路)
上传.php文件,bp抓包,把文件后缀改为.PhP即可绕过
上传成功
第六关(文件后缀(空)绕过)
同样上传一个.php文件,bp抓包,在文件后加几个空格即可
上传成功
第七关(文件后缀(点)绕过)
同样上传一个.php文件,bp抓包,在文件后加一个.即可
上传成功
第八关(::$DATA(Windows 文件流旁路))
上传一个.php文件,bp抓包,在文件后面加::$DATA即可
上传成功
第九关(构造文件后缀绕过)
上传一个.php文件,bp抓包在文件后加. .(点、空格、点)
上传成功
第十关(双写入文件后缀绕过)
上传.php文件,bp抓包把文件后缀改为.pphphp
上传成功
第十一关(%00 截断旁路1)
记得PHP5.2.17,把扩展的gpc关掉
上传一个.php文件,bp抓包,在上传目录改为相应的upload/文件名.php%00
上传成功
第十二关(%00 截断旁路2)
在upload/后加个空格,选中空格改hex为00
第十三关(字节标识绕过)
在PHP文件中一句话木马前面加两个占位符,用010打开,把前面的两个字符用16进制改成89 50,被识别成.png格式
在文件包换漏洞页面地址栏后加?file=./upload/4820231116135151.png
上传成功
第十四关(图片木马绕过)
最好用gif制作图片马,png和jpg麻烦
拿到一个gif,命令行打开输入copy 555.gif/b+333.php pass.gif执行
pass.gif即为图片木马
上传成功
第十五关(php_exif模块映像类型旁路)
打开PHPphp_exif拓展,其余同第十四关,图片木马即可
上传成功
第十六关(二次渲染绕过)
这关最好用gif弄,gif同样的地方大且多
先上传一个.gif图片,再把上传的图片与源文件对比,在文件相同的部分中插入一句话木马后再上传
上传成功
第十七关(条件竞争上传绕过)
文件先到服务器再判断是否合法,一句话木马不能一直连接,所以上传一个PHP文件,它会生成一个long.php文件
<?php fputs(fopen('long.php','w'),'<?php @eval($_POST["a"])?>');?>
打开bp抓包,多线程攻击,总有一瞬间会在upload中一闪而过,所以要再建一个线程一直不停的访问前面多线程上传的php脚本
返回虚拟机查看的确成功了
上传成功
第十八关(条件竞争绕过)
Apache解析漏洞+条件竞争
把111.php改为111.php.7z,解析的还是111.php文件,由此绕过文件后缀检测,剩下的跟上一关一样
b-p抓包上传文件改为
发送到爆破模块,爆破,然后再多线程访问,两个进程同时进行,同上一关,
上传成功
第十九关(move_uploaded_file() 截断旁路)
正常的后缀绕过即可
把后面的保存名字后缀改为.php. (php后面加点空格)
上传成功
第二十关(CTF 旁路)
.php无法上传,所以用图片马
上传成功
总结
大佬给出的总结:[传送门](超详细文件上传漏洞总结分析-腾讯云开发者社区-腾讯云 (tencent.com))