Pass01.基于前端js验证
上传图片抓包改后缀
Pass02.检测MIME类型
修改MIME为image/jpeg
Pass03.黑名单 文件后缀绕过
首先修改apache2配置文件
1 | vim /etc/apache2/mods-available/mime.conf |
上传.php5文件
Pass04.黑名单 .htaccess绕过
先上传.htaccess文件,内容如下
1 | 此条伪静态规则为将demo文件解析成php文件执行 |
本次使用第二条,将所有文件解析为php
Pass05.黑名单 大小写绕过
禁止上传.htaccess
Pass06.黑名单 空格绕过
禁止上传.htaccess
在文件后加一个空格即可(需要在windows环境下,widows自动去空格和点)
Pass07.黑名单 点绕过
禁止上传.htaccess
在文件后加一个点即可(最好在windows环境下)
Pass08.黑名单 ::$DATA绕过
文件后缀添加::$DATA绕过(windows环境)
Pass09.黑名单 点空点绕过
会删除文件后的点,在文件后添加. .进行绕过(window环境)
Pass10.黑名单 双写后缀绕过
从前匹配php进行删除,双写绕过
Pass11.白名单 %00绕过
get传参路径可控
PHP版本小于5.3.4 关闭GPC
Pass12.白名单 0x00绕过
shell_get.php%00
同上,由于post传参所以将%00进行url编码
Pass13.检查图标内容开头2个字节 图片马绕过
Pass14.getimagesize()检查是否为图片文件 图片马绕过
同上
Pass15.exif_imagetype()检查是否为图片文件 图片马绕过
同上
Pass16.图片二次渲染
将二次渲染后文件未变化的部分添加一句话,再次上传,再包含,蚁剑连接。本案例使用gif,图片不知道为什么上传不上去。
Pass17.条件竞争
大佬的文章
先move再判断,符合白名单就重命名,不符合就unlink。
但是我图片马直接就可以了,为了学习新知识,也用大佬的方法做了一遍
Pass18.条件竞争
与pass17类似
Pass19./.绕过
move_uploaded_file会忽略掉文件末尾的 /.
Pass20.代码审计 数组绕过
直接参考大佬的文章
地址