我的2019年漏洞挖掘之旅
大家好!2019年已经结束了,我想分享一些在今年发现的一些值得一提的漏洞,希望你会喜欢。
首先从我在阿里巴巴网站上发现的XSS漏洞开始,我是从相关的Android应用程序开始研究的(希望能从中找到一些新的URL)。
在这之前我从来没有检查过他们的Android应用,所以我从app.evozi.com
下载了阿里系列Android应用(阿里巴巴、支付宝等),然后使用apktool进行反编译,搜索其中的http/https端点。
使用grep直接过滤出以https、http开头的字符串。
很快我便惊讶地看到一些早期并未发现的新域名,我直接把以前发现的XSS的payload进行套用,结果:
但不幸的是,这个漏洞11天前就有人报告了。
你也可以使用https://github.com/s0md3v/Diggy
去抓取apk文件中的URL。
起初我不了解apktool的功能,所以手动完成搜索过滤。先提取apk文件,然后使用dex2jar将classes.dex文件转换为jar,最后搜索http,https。
是的,这是一种很艰难且麻烦的方法,后来我开始寻找是否有相关工具,最终找到了s0md3v的工具。
Verizon Media
由于Verizon Media的漏洞悬赏项目不允许公开漏洞,所以我不会过多地提及细节,只谈论我发现这些漏洞的过程。
这要从我找到的一个雅虎子域的XSS开始(Verizon Media收购了雅虎)。
当时我使用了burpsuite,并从各种子域枚举工具(如subfinder、assetfinder、findomain等)收集子域,然后一个接一个,在浏览器中打开这些子域,使用burp监控流量。同时我还使用了爬虫,希望尽可能多地发现子域名(Jhaddix的方法,相关视频如下)。
https://youtu.be/NUsJpquFq0Q
这个过程很是枯燥无聊,但我一直坚持着。直到有一天,我发现雅虎一个奇怪的3级子域名,我打开它,可以看到只有两个端点,但涉及很多参数。于是我开始测试这些参数,最后找到:
我很快就报告了这个漏洞。而在后来我了解到后续很多人都发现了这个漏洞,如果我晚报告1天,很可能就无效了。
在这漫长的过程中,我还发现了一个可在浏览器中批量打开URL的工具(Open Multiple URLs)。在发现它之前,我还特意写了一个脚本来完成这个任务。
下一个漏洞
在几天后我瞄准了Facebook,值得一提的是,之前已发表了一篇关于子域接管的文章,你可以打开以下链接查看具体内容。
https://medium.com/@sudhanshur705/how-recon-helped-me-to-to-find-a-facebook-domain-takeover-58163de0e7d5
我使用上述文章中同样的方法,在阿里巴巴的漏洞悬赏项目中找到了两个以上的子域名。
主要是查看阿里巴巴旗下部分网站的whois记录,比较结果,然后使用相似的语句来查找更多的域名。通过网络截图,我开始寻找一些有趣的东西,并最终发现了2个无人认领的github页面。
提权漏洞
我们可以使用一些burpsuite下的插件,例如Autorize和Autorepeater。你也可以从这篇文章看到一些使用方法。
此外还有一个相关视频演示。
https://youtu.be/3K1-a7dnA60
在我了解之后,便从hackerone中找到一些私人漏洞项目开始测试。这些目标网站有用户管理系统,可以看到官方设置了不同的用户角色,正好可以检查权限管控问题。
为了进行测试,我创建一个新帐户,然后进行各种配置。(你可以查看上面提到的视频和文章中了解如何设置autorize来进行测试)。
随后再登录到高权限帐户,尽可能多地遍历Web应用上的每个端点,并在一段时间后查看autorize插件,看看能否找到什么。
autorize插件会以低权限用户身份自动访问每个高权限帐户相关的端点,借此发现权限漏洞(https://portswigger.net/bappstore/f9bbac8c4acf4aefa4d7dc92a991af2f)。
我在一个漏洞项目中发现了两个权限漏洞,在另一个漏洞项目中发现了一个权限漏洞。其中一个漏洞可让低权限用户查看组织中其他用户的详细信息。
最终请求和响应的屏幕截图如下。
这个项目对我真的很友好,因为它们文档中有一个复选框可让我轻易找到不同类型的用户能够执行哪些操作。
你也可以自己做一个,这样在测试的时候会更加清晰。
返回Verizon Media
这个漏洞和信息泄露有关,我发现了一个端点,泄露了RSA的公钥和私钥(如下所示)。
[privateKey] => — — — BEGIN RSA PRIVATE KEY — —
………………………Redacted………………………………
— — — END RSA PRIVATE KEY — — —
我使用的搜索方法和上述发现Facebook漏洞中涉及的方法一样。不过,光是使用domain-admin@oath.com
进行搜索,就有一万多个结果(https://tools.whoisxm lapi.com/reverse-whois-search)。
不过我还是像以前一样,收集所有的子域,再去一一截图。
这其中有很多404和重定向页面,如果真要一个个看过去,需要花很多时间。
于是我开始寻找其他的新方法,并知道了@tomnomnom的一些很棒的工具—— httprobe、meg和assetfinder,然后我又找到了一系列演示视频。
首先是https://youtu.be/DvS_ew77GXA
,@tomnomnom谈到了他的侦察技术,以及如何使用meg来查找XSS、开放重定向、CRLF注入和CORS错误配置等。你也可以在Nahamsec视频流上找到更多。
比如他和@stokfredrik做的这个https://youtu.be/l8iXMgk2nnY
。
我利用httprobe解析出从https://tools.whoisxmlapi.com/reverse-whois-search
找到的所有域,并保存在到文件中。
cat domains|httprobe -c 100|tee hosts
在sed命令的帮助下,删除了https
等内容,再去重复,输入到assetfinder
(它将为我找到一些子域)。
cat hosts | sed ‘s/^http\(\|s\):\/\///g’\ | sort -u | assetfinder —subs-only |tee subdomains
在我得到这些子域之后,我又使用了httprobe和whatweb。
WhatWeb可帮助用户识别特定网站的相关信息,下图是该工具的实际应用。
通过grep,我选取出基于PHP的网站
cat whatweb-result|grep “PHP”
将所有的PHP站点保存在一个文件中,使用webscreenshot对它们进行截屏,并用dirsearch进行目录遍历。
for i in `cat target`;do
dirsearch -u $i -e *
done;
从截图中,我发现某个网站有一个空白页面,我检查了源代码,发现有几个php端点,打开后什么也没有。于是我查看了这个网站的dirsearch扫描结果,并发现了一个/.svn/all-wcprops
。
我赶快打开它,发现了大量php文件名称与对应的完整路径。
/var/www/test.php
…………../db.php
我利用这些php端点创建了一个字段列表,去掉路径,再次使用dirsearch对这个网站进行测试。
很快,当我打开结果中的某个端点时,看到了RSA密钥,我很快向上报告了此事。
于是在1-2天内这个网站得到了修复,虽然它貌似不在测试范围内,但我仍然得到了2500美元的赏金,真的很棒!
祝你2020年好运!!!
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@sudhanshur705/bug-hunting-journey-of-2019-95e5190aca7c
最新评论