这是一个易受攻击的应用程序,用于测试 Jetpack < 13.9.1 失效的访问控制(CVE-2024-9926)漏洞的利用。
此应用程序包含严重的安全漏洞。请自行承担运行风险!建议使用已备份且受到保护的环境(例如具有最新快照和仅主机网络的虚拟机)。请勿将此应用程序上传到任何面向互联网的服务器,否则它们将被入侵。
免责声明: 我不对任何人使用此应用程序的方式负责。此应用程序的唯一目的是作为 Jetpack < 13.9.1 失效的访问控制(CVE-2024-9926)漏洞利用的测试场景,不应被恶意使用。如果你的服务器因安装此应用程序而被入侵,这不是我的责任,而是上传并安装它的人的责任。
以下是搭建环境的步骤:
./up.sh 启动编排。容器将被命名为 vuln-wp-jetpack。
要拆除环境,请使用 ./down.sh 命令,或使用 ./down_and_delete.sh 命令以同时删除镜像和数据库卷。
查看修复,很容易理解 get_items_permissions_check() 和 get_item_permissions_check() 这两个方法执行的唯一检查是用户是否属于该博客。
这两个方法都声明在 automattic/jetpack-forms/src/contact-form/class-contact-form-endpoint.php 文件的 Contact_Form_Endpoint 类中。正如该类开头的注释所说,这个类是...
当
feedback文章类型在\Automattic\Jetpack\Forms\ContactForm\Contact_Form中注册时,用作rest_controller_class参数。
这可以在 automattic/jetpack-forms/src/contact-form/class-contact-form-plugin.php 文件的第 201 行看到,该处注册了 feedback 自定义文章类型。
可以通过如下请求经由 REST API 获取可用的类型。
GET /?rest_route=/wp/v2/types
响应中包含 feedback 类型。
要利用此漏洞,以下这样的请求就足够了。
GET /?rest_route=/wp/v2/feedback
请求必须包含带有 应用程序密码 的授权头,如下所示。
Authorization: Basic eW91cl91c2VybmFtZTp5b3VyX2FwcGxpY2F0aW9uX3Bhc3N3b3Jk
可以在这里找到用 Python 编写的漏洞利用脚本:此处。
本项目基于 Unlicense 许可证授权 - 详细信息请参阅 LICENSE 文件。