自动批量检测wordpress插件漏洞的工具—-wpgarlic

wordpress拥有上百万个插件,而且还在不断地增加,作为一名安全研究人员,如何快速有效地找到一些插件的漏洞,单凭人力手工检测,效率肯定不会很高,最近在浏览国外论坛的时候发现了一个半自动化
批量检测wordpress插件安全漏洞的工具—wpgarlic
下面简单介绍下这款工具的原理
WordPress插件公开了许多接口,例如:AJAX endpoints ( /wp-admin/admin-ajax.php),管理菜单页面 ( /wp-admin/admin.php?page=…),PHP目录(在/wp-content/plugins/目录中),REST 路由 ( /wp-json/…)
这些接口在特定的情况下允许外部输入从而导致不可信输入的数据参数,并且可以检测在该输入上执行了哪些操作。
所以这个工具它可以多次执行每个 AJAX 端点、菜单页面、REST 路由或文件,将有效负载注入 GET、POST 等数组或 REST 参数,用一堆正则表达式1分析输出以检测:
包括:调用 WordPress 函数(例如wp_delete_post),分析代码出错崩溃的反馈(例如“No such file or directory”, “You have an error in your SQL syntax”, …)以及xss检测等等
总结下,如果不使工作自动化,就不可能扫描数千个插件。 WordPress 插件使用一致的接口与 WordPress 集成,例如: 所有 REST 路由都收集在一个中央注册表中,可通过以下方式访问rest_get_server()->get_routes():
AJAX 动作是通过添加一个名称以 , 开头的钩子来创建wp_ajax_的 存在一个包含所有管理菜单页面的注册表。
因此,无论扫描哪个插件,都可以以相同的方式枚举所有 REST 路由、AJAX 操作和菜单操作。
所有插件都可以以相同的方式安装:工具采集用了WP-CLI——一个允许从命令行安装、激活、停用或删除插件的工具。插件列表可以从 WordPress 插件注册表 API 自动下载。
上述所有技术使得创建不需要任何插件特定代码的工具成为可能。
第一次运行该软件可能会花费比较久的时间,因为需要构建 Docker 映像。