gpt4 book ai didi

php - WordPress 中使用 eval() 插件的漏洞示例

转载 作者:可可西里 更新时间:2023-10-31 23:49:56 25 4
gpt4 key购买 nike

我继承了一个 WordPress 网站,该网站使用 RunPHP 插件在帖子之间执行 PHP 代码片段。我觉得这不是实现此类功能的最佳方式。但由于这是在很长一段时间内功能正确的遗留代码,我需要一些问题场景的可靠示例。

对于那些不熟悉 RunPHP 的人来说,它是一个使用 eval() 执行嵌入在 Post 或 Page body 中的 PHP 代码的插件。代码块永远不会从用户那里收到,而是由网站所有者/内容创建者输入数据库。

此插件在我们上下文中的用例如下。

表单创建为 Post,其提交操作设置为 Page(我们称之为表单处理程序)。表单处理程序在其主体中包含 PHP 代码,并且为该页面激活了 RunPHP 插件。当提交表单时,表单处理程序接收数据并执行其正文中的 PHP 代码。

除了表单处理程序代码中的一些相当明显的安全问题(动态用户提交的变量评估、无输入清理、无参数化 SQL 查询)。

这里有人可以验证我对 WP 中运行时代码执行插件的怀疑吗?

非常感谢。

帖子中的表单代码 -

<form action="/?p=1234" method="post">
<input name="foobar" type="text" />
<input type="submit" />
</form>

页面中的处理程序代码(这存储在数据库中,并在运行时进行 eval()-ed)-

<?php
$foobar = $_POST["foobar"]; // This contains a SQL-injection vulnerability; But that's a separate issue, I think
$query = "INSERT INTO table (field) VALUES (\"" . $foobar . "\")"; // Use variable in a query string
?>

最佳答案

如果没有看到实际的站点/代码很难说,但通常 eval 是安全问题的潜在网关。想象一下,您的网站某处存在 SQL 注入(inject)问题:攻击者不仅可以将数据注入(inject),还可以将 PHP 代码注入(inject)您的应用程序。 Eval 有一些(少数)有效的使用领域,但总的来说我会避免使用它。 Wordpress 很容易扩展,也许可以尝试将功能移植到插件中。

关于php - WordPress 中使用 eval() 插件的漏洞示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8742374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com