好久没写了文章了, 今天遇到 url 漏洞就顺便记录以及自己的理解和大家分享心得.
0x00 内容概括
本文章会结合一些靶场来进行说明SSRF漏洞来加深对SSRF的印象, 本文章主要和大家分享:
1.SSRF的场景绕过方式 URL by Pass
2.盲注SSRF
3.判断SSRF漏洞
4.靶场示例
5.防御方法
0x01 漏洞概述
SSRF(Server-Side Request Forgery:服务器端请求伪造), 该漏洞主要针对web中 跳转 相关, 如果你在进行网站检索时, 看到有关 “url跳转” 的场景, 可以联想到可能有SSRF漏洞.
punchline: 我们传递参数,服务器代替我们去访问.
SSRF 主要可以用来读取服务器内部或外部数据, 比如我们可以通过ssrf 获取系统用户信息 /etc/passwd, 如深挖得到也可以通过ssrf获取到源码内容(如php某个文件).
0x02 SSRF漏洞危害
- 服务器内网交互
- 跳板机(用你的服务器去攻击其他服务器,防止被追踪到 )
- 获取服务器信息
- 实现远程代码执行
- ....
所以网站如果出现SSRF漏洞影响是非常大的.
0x03 查找/验证思路
我们通常可以在获取远程资源的应用程序中找到SSRF漏洞。在寻找SSRF漏洞时,我们应该寻找:
- HTTP请求重定向、URL跳转处理业务逻辑
- 文件导入转换等,如HTML、PDF、图像等。
- 远程服务器连接来获取数据
- 有关提供给外部链接进行业务处理的功能
验证 SSRF 首先先确定是否是由服务器进行访问的,
1.定位问题,尝试访问 http://www.dnslog.cn/, 如果有访问记录,大概存在ssrf漏洞
2.排他验证限制, 尝试绕过
3.愉快玩耍
0x04 URL 绕过 byPass
一般来说网站都会做一些简单url安全处理,来阻止攻击者,但是一般都不会过多处理, 这得分情况, 如果是码农, 他们只负责码和简单的处理,并不会过多对某个场景进行加深安全, 毕竟996没有给他们时间对某个功能做很大的防护, 能交付上线才是总重之中, 只能鞭策鞭策他们才会注意到.
没有防护的示例(实习生):
如果你抓包见到一个重定向,如:
HTTP/1.0 302 FOUND Content-Type: text/html; charset=utf-8 Content-Length: 242 Location: http://<TARGET IP>/load?q=index.html Server: Werkzeug/2.0.2 Python Date: Mon, 18 Oct 2021 09:01:02 GMT <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>Redirecting...</title> <h1>Redirecting...</h1> <p>You should be redirected automatically to target URL: <a href="https://www.freebuf.com/load?q=index.html">/load?q=index.html</a>. If not click the link.
那么你可以尝试:
http://<TARGET IP>/load?q=file:///etc/passwd
这样如果能访问到内容, 那么说明这个开发者比较放得开一点.
如果访问不了, 阻止了你的访问, 你可以考虑使用以下绕过方法检测:
1. 单斜线"/"绕过
http://<TARGET IP>/load?q=index.html/{file:///etc/passwd}
2. 利用"@"符号绕过(这个方法很实用)
@ 是虚拟域名, 在浏览器输入后, 浏览器会识别@后面的域名, 前面则是域名的配置信息,
@ 在浏览器中的性质:
1.协议头取@域名前的协议,
例1:https://[email protected], 浏览器最终指向https://bing.cn
例2:https://www.baidu.com@http://bing.cn, 浏览器会执行 https://http//bing.cn.
2.带路经的不能识别,
例1:https://www.baidu.com/demo/@bing.cn, 浏览器无法识别, 因此当作为参数来执行
有过开发或了解一些服务器相关的大概知道, 我们可以在浏览器中链接ftp/ssh, 格式:
ftp://username:[email protected]
浏览器会取username/password 为 127.0.0.1 作为授权来进行登录认证, 如果不填写, 则需要访问后输入账号密码进行登录.
3.IP转换
如遇到对本地地址或指定IP地址限制时可以将IP进行转换, 例如可以转换成: 十进制的IP, 依旧是可以进行访问的
例如本地IP:
127.0.0.1
可以转换成:
1.十进制: 2130706433:
2.十六进制:
http://0x7f000001
3.ipv6的地址:
http://[::ffff:7f00:1]
4.ipv6的地址:
http://[::ffff:127.0.0.1]
5.ipv6的地址:
http://127.1
6.ipv6的地址:
http://127.0.1
7. 0.0.0.0 IP地址
0.0.0.0
4.短域名生成
还有很多在线短域名生成,也可以通过生成短域名进行绕过
0x05 常见协议头
1. gopher://
定义:Gopher协议是一种早期的Internet信息检索协议,它允许用户通过文本菜单浏览和检索信息。
用途:在Web浏览器出现之前,Gopher是Internet上主要的文本信息检索工具之一。然而,随着Web的普及,Gopher逐渐被淘汰。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)