2021 ciscn web wp
复现几道没做出来的题:>
upload
发现文件index.php、example.php
知识点1:绕过getimagesize
在上传的文件最后面加上
#define width 1
#define height 1
知识点2:绕过zip字符中的i
结合
https://bugs.php.net/bug.php?id=77375
使用İ字符可以绕过i字符的匹配,如果php这三个字符也能绕过就能直接上传php了~~,官方中发现只能针对这几个字符
array('c', 'C', 'g', 'G', 'i', 'I', 'o', 'O', 's', 'S', 'u', 'U');
array('ç', 'Ç', 'ğ', 'Ğ', 'ı', 'İ', 'ö', 'Ö', 'ş', 'Ş', 'ü', 'Ü');
结合example.php的解压压缩包 我们利用zİp来替代zip(İ会被解析为I,再通过mb_strtolower就变成了i)
知识点3:解压出php
绕过图片检测的脚本:
https://github.com/huntergregal/PNG-IDAT-Payload-Generator/
git下来 生成图片马
python generate.py -m php -o md.png
修改图片后缀为php然后解压到zip里面
上传zip,绕过getimagesize和i,如下图
再用example.php解压
接下来直接去解压的路径example下访问md.php命令执行就行
复现参考:Yu22x