背景介绍
今天来分享2位国外白帽子在去年7月份,通过200小时(每天花上4-6小时)黑客挑战赛,最终收获$20,300美元赏金的故事。
他们选择的目标是一家著名的大公司,因为该公司在赏金网站上是公共项目,因此许多赏金猎手都曾参与其中,也许很多新手初学者看到该项目可能会选择跳过,但对于这支小队来说,他们一开始并没有将赏金视为唯一目的,而是觉得这是一个学习和进步的过程。因此,他们设定的目标是挑战时限–200小时,而非赏金金额。
侦察阶段,他们使用各种技术来识别尽可能多的资产,因为拥有越多的资产则表示发现漏洞的机会越多,简单总结如下:
证书查询
利用IP进行资产发现
使用CSP Header
利用Google Dork
使用Google Analytics
动态和静态的DNS爆破
OSINT 开源情报
常见的证书搜索是在 Common Name
上搜索,然而,证书有不同的部分,例如 Organization
字段等,有一些网站可以搜索网络并保存证书,比如Shodan或Censys,以苹果公司为例:
可以使用以下命令来枚举苹果公司的根域:
curl -s "https://crt.sh/?O=Apple%20Inc.&output=json" | jq -r ".[].common_name" | tr A-Z a-z | unfurl format %r.%t | sort -u | tee apple.cert.txt
COPY
每个公司可能拥有一些CIDR,有时由于所有者名称比较模糊而几乎无法找到这些CIDR,但是,CIDR 往往会带有公司标志(ASN 名称中的 Apple)。要查找 IP、CIDR 和 ASN,有很多方法,其中最常用方法之一就是使用 ipip.net:
可以扫描到属于该公司的所有 CIDR、ASN 和 IP,并提取证书信息,在这里可以发现一些域,通过以下命令可以找到 alternative names
和 common names
:
echo AS714 | tlsx -san -cn -silent -resp-only
COPY
作为一名白帽子或赏金猎人,你应该不断地跳出框框来思考,在这个阶段,有时候可以转向开源情报,比如通过公司的新闻博客,在某篇博文中发现championscompany.com
这样一个域名,随后通过批量检查5000篇博文文章,发现了60个有趣的域名,而这些域名在之前的侦察中都未被发现。
通过静态 DNS 爆破,发现一处 test.target.tld
子域,从而发现一个无需身份验证的 Swagger UI 服务(端口5000),大约有 100 个 API 似乎受到身份验证的保护,然而,他们会单独测试每一个API(无聊但必要)。
令人惊讶的是,居然发现了整整 10 个开放 API,其中 2 个正在泄露用户数据(PII),如下所示:
渗透测试最有效的阶段之一是威胁建模,一旦了解目标,就可以准备测试用例和攻击场景,威胁建模非常游泳,你不能盲目地进行测试或Fuzz,因为考虑到所花费的时间,你可能不会得到任何有用的结果。
如果应用程序比较‘老’并且具有来自数据库的加载字段(本案例中,选择国家/地区),他们会在这些字段上测试基于时间的注入测试。他们发现了 2 个带有 1'XOR(SELECT CASE WHEN(1234=1234) THEN SLEEP(7) ELSE 0 END)XOR'Z
的 SQL注入:
与许多白帽子的做法差不多,他们也会尝试通过更改请求中的数字 ID 来获取用户信息,但都遇到了 403 错误,然后他们将请求方法切换为 PATCH
,这也是一些白帽子会使用的策略,但同样没能起作用。然而,他们的关键策略是添加特定的标头,通过包含 Accept: application/json
,成功收到了 200 OK 响应:
GET /users/58158 HTTP/2
Host: www.target.com
Cookie: x
Content-Length: 0
Sec-Ch-Ua:
COPY
更改了ID 收到 403 错误,为了绕过,将方法更改为 PATCH
并添加 Accept: application/json
,成功:
编辑器使用文本的任何地方都是测试 XSS 的有趣场景,然而,在大多数情况下,它会使用正则表达式来过滤掉危险标签,当他们浏览应用程序时,发现了 posts 字段,在posts字段中,可以像 Twitter 一样编写posts注释,但必须绕过CSP保护,于是他们使用下面的Payload实现了CSP绕过:
xss<script/src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"> "></script>
COPY
在侦察过程中,他们还发现了一个特别有趣的域,其名称中包含单词 demo
,例如 companydemonew.com
,该域仅提供登录或注册选项,要注册,需要提供公司电子邮件地址,例如 [email protected]
:
他们注册了 [email protected]
,成功绕过注册并收到激活邮件!由于该域不可公开访问,因此他们猜测身份验证后会出现更多漏洞,不久后通过简单地将数字 ID 从 35 更改为 36,他们便发现了一个重要的 IDOR:
漏洞审核结果:
**
漏洞审核结果:
使用公共字典,你可以发现一些漏洞,但自定义的字典可以发现更多漏洞,通过他们的私有字典,他们成功找到了 WPEngine
配置文件:
https://target.com/_wpeprivate/config.json
X2数据库凭证泄露
X1账户接管漏洞
X10反射型XSS
X2信息泄露
X2业务逻辑漏洞
X2子域接管漏洞
通过使用 toggl track 应用程序来跟踪他们的渗透时间,从而评估结束时的进度,结果如图所示:
他们在本次狩猎上花费了约 200 小时(每人大概 100 小时)。
在一起狩猎了 200 小时后,他们暂停了该工作,然后等待漏洞报告的处理,他们花了近 5 个月的时间才收到所有漏洞的赏金,最终他们从这次‘旅程’中赚到了 20,300 美元的奖励。
英文原文:https://blog.voorivex.team/20300-bounties-from-a-200-hour-hacking-challenge
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放