wordfence / exkit
Requires
- php: >=5.4
- rmccue/requests: ^1.0
README
ExKit 是 Wordfence 开发的用于概念验证代码的便捷库。它包括常见的操作,如以特定角色登录用户、返回端点路径(例如,admin-ajax.php)、抓取 WP nonces 等。
配置
大多数概念验证将需要对目标主机进行一定程度的自定义。每个概念验证将自动提示所需值,但为了重复测试,创建一个配置文件传递可能很有用,以避免额外的输入。
配置文件是一个简单的单级 JSON 文件。所有常见字段都在 config-sample.json
文件中定义,但概念验证可以根据需要定义自己的。在执行概念验证时使用此文件是通过 --config
命令行选项完成的。语法为 proofofconcept.php --config=/path/to/config.json
。
可用函数
这只是对可用函数的概述。有关任何其他详细信息,请参阅文档和语法的源代码。
Cli
Cli
类定义了通过控制台获取和发送信息的多个便捷函数。
options
返回在脚本调用时提供的所有选项的预解析关联数组。
write
写入控制台,可选地使用着色。
prompt
提示用户输入值,可选地提供默认值。
Config
Config
类提供了一种统一的接口来获取和存储环境相关值。这包括用户凭据、主机 URL 等等。
useConfigurationFile
将给定文件与存储的值数组合并。
get
返回所需键的值,可选地提示或返回默认值。
set
存储给定键的值。
Endpoint
Endpoint
类提供了一种统一的接口来获取概念验证的常见端点的 URL。如果尚未提供这些值,它将提示这些值。
baseURL
网站的基准 URL。
loginURL
网站的登录 URL。如果尚未知道,则默认为 baseURL
+ /wp-login.php
。
adminURL
网站的管理员 URL。如果尚未知道,则默认为 baseURL
+ /wp-admin/admin.php
。
adminAjaxURL
网站的管理员 AJAX URL。如果尚未知道,则默认为 baseURL
+ /wp-admin/admin-ajax.php
。
adminPostURL
网站的管理员帖子 URL。如果尚未知道,则默认为 baseURL
+ /wp-admin/admin-post.php
。
uploadsURL
网站的上传 URL。如果尚未知道,则默认为 baseURL
+ /wp-content/uploads
。
url
检查配置中给定的 URL,如果需要,提示用户输入。
ExitCodes
定义了几个退出代码,以确保概念验证使用一组常见的值。
EXIT_CODE_INFORMATIONAL_ONLY
如果仅显示一些信息而不运行漏洞(例如,显示帮助信息),请使用。
EXIT_CODE_EXPLOIT_FAILED
如果漏洞失败,请使用。
EXIT_CODE_EXPLOIT_SUCCEEDED
如果漏洞成功,请使用。
EXIT_CODE_FAILED_PRECONDITION
如果在运行利用程序之前某些先决条件失败时使用(例如,无效的登录凭据)。
EXIT_CODE_VALID_REQUEST_FAILED
如果对有效请求的测试失败时使用。
页面
提供与页面交互的便捷函数。
find
加载指定的页面并将正则表达式应用于响应,返回任何匹配项。
WPAuthentication
提供登录功能。这可能适用于特定用户或适用于具有所需角色的用户。
logInAsUserRole
以具有所需角色的用户登录(调用logInAsUser
)。如果没有在配置缓存中找到用户,它将提示输入用户的凭据。
logInAsUser
以给定凭据的用户登录。如果登录失败,它将输出错误并退出,代码为EXIT_CODE_FAILED_PRECONDITION
。
WPNonce
查找非ces的便捷类。
findOnPage
加载指定的页面并在其中搜索nonce。目前这仅仅是通过应用正则表达式来完成的,但未来的版本可能会采用更智能的方法。