白帽故事 · 2024年3月22日

通过子域模糊测试收获$35,000赏金奖励

背景介绍

今天来分享一位全职白帽Abdullah Nawaf的故事, 目前他在BugCrowd中排名前 50,P1 漏洞排名 11,主要挖掘 P1 和 P2 漏洞。本文主要讲述了利用子域Fuzz,将多个漏洞组合起来成功RCE并收获35K赏金奖励的过程。

故事开始

故事发生在 2022 年,当时我们的主角报告了 Bugcrowd 中一个私人项目的“通过认证绕过获得SQL注入和RCE漏洞”, 该漏洞在报告一天后就得了快速修复。2024 年 3 月,白帽小哥决定和另一位白帽Orwa重新测试一些旧漏洞。

他们重新测试的目标是 admin.Target.com首先使用命令对子域进行Fuzz:

ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c  -t 350 -mc all  -fs 0

不久后便找到了一个名为 admintest.Target.com 的子域:

img

admintest.target.com 很容易受到攻击,因为它与子域 admin.Target.com 具有相同的后端。

认证绕过&BAC

https://admintest.target.com 会重定向到https://admintest.target.com/admin/login.aspx,通过读取一些 JS 文件,可以发现一个名为 https://admintest.Target.com/admin/main.aspx 的端点,直接在浏览器中打开它会再次重定向到登录页面,但在 Burp 中却发现了一些‘有趣’的东西:

img

Content-Length 相当大,对于重定向响应来说这也太大了。通过删除下面 3 个标头,就可以访问到控制面板:

img

使用 Burp Match And Replace 或使用 Burp 拦截响应:

change 302 Moved Temporarily to 200 OK
remove Location: /admin/Login.aspx?logout=y
remove html redirect code 

能够完全实现身份验证绕过,并且功能齐全,而不仅仅是前端绕过。在深入挖掘之后,能够发现 adduser.aspx 端点将重定向到登录页面 main.aspx ,使用 adduser.aspx 中的相同技巧,可以访问端点并添加管理员帐户,另外他们还发现另一个端点无需任何身份验证就能够显示管理员用户名和密码。

file

SQL注入

通过添加管理员帐户登录后,他们找到了一个名为 SQLQuery.aspx的端点,通过名字你基本可以猜测到它的功能了。

首先尝试 Select * from users,能够看到所有用户的信息,包括密码、电子邮件、用户名:

img

RCE

由于数据库是 `mssql ,那么首先想到的就是尝试**xp_cmdshell** 尝试 RCE 利用,默认情况下它是禁用的,但可以使用 sqlmap 的 --os-shell 来启用它。但在本案例中,无需 Sqlmap,因为可以直接向数据库执行查询,因此,要使 **xp_cmdshell** 正常工作,就是使用查询功能来开启它:

SP_CONFIGURE "show advanced options", 1
RECONFIGURE
SP_CONFIGURE "xp_cmdshell", 1
RECONFIGURE

然后使用xp_cmdshell ‘whoami’

img

最终他们成功收获$35,000的赏金奖励。

经验与启发

  1. 始终检查burp中的重定向响应

  2. 如果你在一个子域中发现漏洞已修复,那么可以继续尝试子域Fuzz

    比如:

admin-FUZZ.target.com -> admin-stg.target.com
FUZZ-admin.target.com -> cert-admin.target.com
adminFUZZ.target.com  -> admintest.target.com
FUZZadmin.target.com  ->  testadmin.target.com
admin.FUZZ.target.com -> admin.dev.target.com

使用FFuF的话,可以这样操作:

ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c -t 350 -mc all -fs 0

  1. 在提交漏洞报告之前尝试升级漏洞
  2. 谨记质量>数量(毕竟发现多个漏洞或将漏洞组合在一起利用时,你会获得更高的赏金
  3. 更多字典可移步:

https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS

以上内容由骨哥翻译并整理,希望你能有所启发~

文章原文:https://medium.com/@HX007/subdomain-fuzzing-worth-35k-bounty-daebcb56d9bc