一句话木马@eval($_POST[“cmd“]);是什么意思(超详细)

在文件上传(upload)类ctf题中,相信大家都接触过一句话木马

@eval($_POST["cmd"]);

?>

那么具体它是扫描意思呢

POST

是html中

标签的POST方法

在页面中,所有的POST方法都会由submit输入方式向action中的php文件返还信息,通常这样的php文件是连着着数据库的,甚至可以直接对文件进行操作

PHP eval()函数

eval(str)函数吧str字符串按照php代码来计算

该str字符串必须是合法的PHP代码,且必须以分号结尾

如果没有在代码字符串中调用return语句,则返回NULL。如果代码存在解析错误,则eval()函数返回false

$_POST[XXX]

当使用标签的post方法时候,同时标签里面的name属性等于cmd

例如:

会在php文件中产生一个$_POST[cmd]变量,变量中储存有用户提交的数据,

假设用户在输入框中输入了:phpinfo();

那么$_POST[cmd]变量便会变成  "phpinfo();"  这个字符串

再加上eval()方法函数将用户输入的字符串进行执行,那么用户便可以通过输入php语句来达到任意操作数据库和服务器的效果了

你可能感兴趣的:(php,安全,开发语言,upload,html5)