子域名模糊测试价值35,000赏金!
0x01 描述
故事发生在2022年,当时我报告了Bugcrowd中的一个私人程序的Auth Bypass Leads to SQLI&RCE ,该Bug在报告一天后就得到了修复。
2024年3月,我和Orwa决定重新测试我们的旧bug,我们重新测试的目标是admin.Target.com我们通过使用此命令使用子域模糊测试
ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c -t 350 -mc all -fs 0
您将在参考部分找到 subdomain_megalist.txt
使用此命令我们找到了一个名为 admintest.Target.com 的子域

你可以注意到图中有很多错误,但是没关系,因为你模糊了子域,错误意味着子程序不工作
admintest.Target.com 很容易受到攻击,因为它与原始子域 admin.Target.com 具有相同的后端我们一一说一下我们发现的bug
0x02 Auth Bypass & BAC
访问https://admintest.Target.com 被重定向到 https://admintest.Target.com/admin/login.aspx
读取一些js 文件,我们发现一个名为 https://admintest.Target.com/admin/main.aspx 的端点,直接在浏览器中打开它会将我们再次重定向到登录页面,但在Burp中我们注意到一些东西,

Content-Length 内容长度太大,对于重定向响应来说太大
您可以在这里注意到,即使您重定向到登录页面,最终也能正常工作,具有完全访问权限,通过删除这3个标头,我能够访问该面板
使用 Burp Match And Replace 或使用 Burp 拦截响应
change 302 Moved Temporarily to 200 OKremove Location: /admin/Login.aspx?logout=yremove html redirect code
我们能够获得完整的身份验证绕过,并且它功能齐全,而不仅仅是前端绕过,在深入挖掘之后,我们发现adduser.aspx这个端点也会将我们重定向到登录页面,就像我们能够main.aspx使用相同的技巧一样adduser.aspx访问端点并添加管理员帐户,我们还发现另一个端点显示管理员密码和用户名,无需任何身份验证。

SQLI注入:
添加管理员帐户后,我们就可以登录了,这对我们来说比使用上面的技巧更容易。
我们找到了一个名为“SQLQuery.aspx”的端点,从它的名字你就知道它的功能了:)
我尝试的第一件事是这个查询:Select * from users,我们能够看到所有用户的信息,包括密码、电子邮件、用户名等...
RCE远程代码执行:
由于数据库是“mssql”,我们尝试使用xp_cmdshell将其升级为RCE。
您阅读了有关 xp_cmdshell 的内容
https://www.mssqltips.com/sqlservertip/1020/enabling-xpcmdshell-in-sql-server
简而言之,xp_cmdshell允许用户使用mssql在系统中执行命令,默认情况下它是禁用的,但您可以使用sqlmap选项--os-shell轻松启用它。
但在我们的例子中,我们不需要sqlmap,因为我们直接对数据库执行查询,就像 Select * from users、SELECT @@version 一样
因此,要使xp_cmdshell正常工作,我们要做的第一件事就是使用这些查询来启用它
SP_CONFIGURE "show advanced options", 1RECONFIGURESP_CONFIGURE "xp_cmdshell", 1RECONFIGURE
你可以看到这个,它会有所帮助
https://medium.com/@s12deff/microsoft-sql-server-to-rce-984016b4aaf8
然后 xp_cmdshell ‘whoami’ BOOM RCE!
我们在一份报告中发送了所有这些内容,并在另一个端点中发送了另一个SQLI,我们总共获得了35k赏金。
0x03 经验教训和总结
1. 经常检查burp中的重定向响应
我和Orwa发现了很多很多相同的身份验证绕过,我的第一个赏金是在2020年,也是同样的技巧,/admin/admin.php重定向到login.php,但是当我在burp中看到响应时,admin.php工作正常,它只是前端Redreact !
2.如果您在子域中发现了错误并已修复,请尝试子域模糊测试
你可以这样使用它
admin-FUZZ.target.com E.G: admin-stg.target.comFUZZ-admin.target.com E.G: cert-admin.target.comadminFUZZ.target.com E.G: admintest.target.comFUZZadmin.target.com E.G testadmin.target.comadmin.FUZZ.target.com E.G: admin.dev.target.com
再次命令
ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c -t 350 -mc all -fs 0 -t 表示线程,不要设置得太高,否则您可能会错过很多有效子域名,而且它也取决于您的网络速度,因为我使用vps 350为我找到 -mc 表示macth所有响应代码,例如200,302,403,这很重要
3. 在报告之前尝试升级错误
4. 质量重于数量:
当您发现多个错误或将错误链接在一起尝试将它们作为一份报告报告时,您将获得更高的赏金:)
0x04 参考
感谢Netsecurity提供该列表,你也可以在这里找到很多列表
https://github.com/netsecurity-as/subfuz/blob/master/subdomain_megalist.txthttps://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
文章来源:潇湘信安
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
华盟君