Wordpress
Last updated
Last updated
学习与实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) 学习与实践 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
使用 Trickest 轻松构建和 自动化工作流,由世界上 最先进 的社区工具提供支持。 立即获取访问权限:
上传的 文件位于: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
主题文件可以在 /wp-content/themes/ 中找到, 所以如果你更改主题的一些 php 文件以获取 RCE,你可能会使用该路径。例如:使用 theme twentytwelve 你可以 访问 404.php 文件在: /wp-content/themes/twentytwelve/404.php
另一个有用的 URL 可能是: /wp-content/themes/default/404.php
在 wp-config.php 中可以找到数据库的 root 密码。
默认登录路径检查: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
index.php
license.txt
包含有用的信息,例如安装的 WordPress 版本。
wp-activate.php
用于在设置新 WordPress 网站时的电子邮件激活过程。
登录文件夹(可能被重命名以隐藏):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
是一个文件,代表 WordPress 的一个功能,允许数据通过 HTTP 作为传输机制,XML 作为编码机制进行传输。这种类型的通信已被 WordPress REST API 替代。
wp-content
文件夹是存储插件和主题的主要目录。
wp-content/uploads/
是存储上传到平台的任何文件的目录。
wp-includes/
这是存储核心文件的目录,例如证书、字体、JavaScript 文件和小部件。
wp-sitemap.xml
在 WordPress 版本 5.5 及更高版本中,WordPress 生成一个包含所有公共帖子和可公开查询的帖子类型和分类法的 sitemap XML 文件。
后期利用
wp-config.php
文件包含 WordPress 连接数据库所需的信息,例如数据库名称、数据库主机、用户名和密码、身份验证密钥和盐,以及数据库表前缀。此配置文件还可以用于激活 DEBUG 模式,这在故障排除时可能很有用。
管理员
编辑: 发布和管理他和其他人的帖子
作者: 发布和管理自己的帖子
贡献者: 撰写和管理自己的帖子但不能发布
订阅者: 浏览帖子并编辑他们的个人资料
检查是否可以找到文件 /license.txt
或 /readme.html
在页面的 源代码 中(来自 https://wordpress.org/support/article/pages/ 的示例):
grep
meta name
CSS链接文件
JavaScript文件
使用 Trickest 轻松构建和 自动化工作流程,由世界上 最先进 的社区工具提供支持。 立即获取访问权限:
您可能无法找到所有可能的插件和主题。为了发现所有这些,您需要 主动暴力破解插件和主题的列表(希望对我们来说,有自动化工具包含这些列表)。
ID 暴力破解: 通过暴力破解用户 ID 从 WordPress 网站获取有效用户:
如果响应是 200 或 30X,这意味着 id 是 有效 的。如果响应是 400,那么 id 是 无效 的。
wp-json: 你也可以通过查询来获取用户的信息:
另一个可以揭示用户信息的 /wp-json/
端点是:
注意,此端点仅暴露已发布帖子的用户。仅提供启用此功能的用户的信息。
还要注意,/wp-json/wp/v2/pages 可能会泄露 IP 地址。
登录用户名枚举:在 /wp-login.php
登录时,消息在指示的 用户名是否存在 时是 不同的。
如果 xml-rpc.php
处于活动状态,您可以执行凭据暴力破解或利用它对其他资源发起 DoS 攻击。(您可以通过使用这个来自动化此过程,例如)。
要查看它是否处于活动状态,请尝试访问 /xmlrpc.php 并发送此请求:
检查
凭证暴力破解
wp.getUserBlogs
、wp.getCategories
或 metaWeblog.getUsersBlogs
是一些可以用来暴力破解凭证的方法。如果你能找到其中任何一个,你可以发送类似于:
消息 "用户名或密码不正确" 应该出现在 200 代码响应中,如果凭据无效。
使用正确的凭据,您可以上传文件。在响应中,路径将出现 (https://gist.github.com/georgestephanis/5681982)
还有一种更快的方法可以使用**system.multicall
**进行暴力破解凭据,因为您可以在同一请求中尝试多个凭据:
绕过 2FA
此方法是针对程序而非人类的,并且较旧,因此不支持 2FA。因此,如果您拥有有效的凭据,但主要入口受到 2FA 保护,您可能能够利用 xmlrpc.php 使用这些凭据登录,从而绕过 2FA。请注意,您将无法执行通过控制台可以执行的所有操作,但您仍然可能能够达到 RCE,正如 Ippsec 在 https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s 中解释的那样。
DDoS 或端口扫描
如果您可以在列表中找到方法 pingback.ping,则可以使 Wordpress 向任何主机/端口发送任意请求。 这可以用来请求成千上万的 Wordpress 站点去访问一个位置(因此在该位置造成DDoS)或者您可以用它让Wordpress去扫描一些内部网络(您可以指定任何端口)。
如果你得到的 faultCode 值 大于 0 (17),这意味着端口是开放的。
查看上一节中 system.multicall
的使用,了解如何利用此方法造成 DDoS。
DDoS
此文件通常位于Wordpress站点的根目录下:/wp-cron.php
当此文件被访问时,会执行一个“重”的MySQL 查询,因此可能被攻击者用来造成****DoS。
此外,默认情况下,wp-cron.php
在每次页面加载时被调用(每当客户端请求任何Wordpress页面时),在高流量网站上可能会导致问题(DoS)。
建议禁用Wp-Cron,并在主机中创建一个真正的cronjob,以定期执行所需的操作(而不造成问题)。
尝试访问_https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_,Wordpress站点可能会向您发出请求。
当它不起作用时的响应是:
此工具检查methodName: pingback.ping和路径**/wp-json/oembed/1.0/proxy**,如果存在,它会尝试利用它们。
这不仅仅是一次真正的攻击,而是一种好奇心。在 CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man 中,你可以翻转任何 wordpress 文件的 1 个比特。因此,你可以将文件 /var/www/html/wp-includes/user.php
的位置 5389
翻转为 NOP NOT (!
) 操作。
修改所用主题的 php(需要管理员凭据)
外观 → 主题编辑器 → 404 模板(在右侧)
将内容更改为 php shell:
在互联网上搜索如何访问该更新页面。在这种情况下,您必须访问这里: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
您可以使用:
to get a session.
可能可以将 .php 文件作为插件上传。 使用例如以下方法创建你的 php 后门:
然后添加一个新插件:
上传插件并按“立即安装”:
点击继续:
这可能看起来没有任何反应,但如果你去媒体,你会看到你的 shell 已上传:
访问它,你将看到执行反向 shell 的 URL:
此方法涉及安装已知存在漏洞的恶意插件,并可以利用该漏洞获取 web shell。此过程通过 WordPress 仪表板进行,如下所示:
插件获取:从像 Exploit DB 这样的来源获取插件,如 这里。
插件安装:
导航到 WordPress 仪表板,然后转到 仪表板 > 插件 > 上传插件
。
上传下载插件的 zip 文件。
插件激活:一旦插件成功安装,必须通过仪表板激活它。
利用:
安装并激活插件“reflex-gallery”,可以利用它,因为已知存在漏洞。
Metasploit 框架提供了此漏洞的利用。通过加载适当的模块并执行特定命令,可以建立 meterpreter 会话,从而获得对站点的未经授权访问。
注意,这只是利用 WordPress 网站的众多方法之一。
内容包括描述在 WordPress 仪表板中安装和激活插件步骤的视觉辅助工具。然而,重要的是要注意,以这种方式利用漏洞在没有适当授权的情况下是非法和不道德的。此信息应负责任地使用,仅在法律背景下使用,例如在获得明确许可的渗透测试中。
有关更详细的步骤,请查看: https://www.hackingarticles.in/wordpress-reverse-shell/
权限提升: 在 WordPress 中创建用户。
(RCE) 自定义插件 (后门) 上传: 将自定义插件 (后门) 上传到 WordPress。
(RCE) 内置插件编辑: 编辑 WordPress 中的内置插件。
(RCE) 内置主题编辑: 编辑 WordPress 中的内置主题。
(自定义) 自定义利用: 针对第三方 WordPress 插件/主题的自定义利用。
提取用户名和密码:
更改管理员密码:
了解 Wordpress 插件如何暴露功能是发现其功能漏洞的关键。您可以在以下要点中找到插件可能暴露功能的方式,以及一些易受攻击插件的示例,详见 这篇博客文章。
wp_ajax
插件暴露功能的一种方式是通过 AJAX 处理程序。这些处理程序可能包含逻辑、授权或身份验证漏洞。此外,这些功能通常会基于 Wordpress nonce 的存在进行身份验证和授权,而 任何在 Wordpress 实例中经过身份验证的用户都可能拥有(与其角色无关)。
这些是可以用来在插件中暴露功能的函数:
使用 nopriv
使得该端点可以被任何用户访问(甚至是未认证的用户)。
此外,如果该函数只是使用 wp_verify_nonce
检查用户的授权,该函数仅检查用户是否已登录,通常并不检查用户的角色。因此,低权限用户可能会访问高权限的操作。
REST API
还可以通过使用 register_rest_route
函数从 WordPress 注册一个 REST API 来暴露函数:
permission_callback
是一个回调函数,用于检查给定用户是否有权调用 API 方法。
如果使用内置的 __return_true
函数,它将简单地跳过用户权限检查。
直接访问 php 文件
当然,Wordpress 使用 PHP,插件中的文件可以直接从网络访问。因此,如果一个插件暴露了任何通过访问文件触发的脆弱功能,任何用户都可以利用它。
确保 WordPress、插件和主题是最新的。还要确认在 wp-config.php 中启用了自动更新:
也只安装可信的 WordPress 插件和主题。
删除默认的 admin 用户
使用 强密码 和 双因素认证
定期 审查 用户 权限
限制登录尝试 以防止暴力破解攻击
重命名 wp-admin.php
文件,并仅允许内部或特定 IP 地址访问。
使用 Trickest 轻松构建和 自动化工作流程,由世界上 最先进 的社区工具提供支持。 今天就获取访问权限:
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE) 学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)