一、绕过原理:
SSRF产生的原因为未对URL中引用的URL进行限制,使得攻击者能够利用这一漏洞使得引用的URL指向内网中的其它地址以获得本应该被拒绝外网访问的资源。因此常见的SSRF防御手段为对引用的URL进行限制。常见的限制手段有黑名单和白名单两种。
二、绕过方式:
1、url解析规则
2、ip地址进制转换
3、302跳转
4、DNS重绑定
三、实训
1、URL Bypass(运用url解析规则)
知识点:一个 url 的访问实际上是以 @符后为准的,比如说 xxxx.com@10.10.10.10,则实际上访问的是 10.10.10.10 这个地址
题目显示必须以http://notfound.ctfhub.com开头,因为http://www.baidu.com@127.0.0.1/与http://127.0.0.1请求的页面一致,考虑用这种结构来绕过本来的地址应该是http://127.0.0.1/flag.php 修改为:http://notfound.ctfhub.com@127.0.0.1/flag.php后成功
2、数字IP Bypass
知识点:1、转换为八、十、十六进制:IP地址是一个32位的二进制数,通常被分割为4个8位二进制数。通常用“点分十进制”表示成(a.b.c.d)的形式,所以IP地址的每一段可以用其他进制来转换
2、enclosed alphanumerics
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿
⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣
⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ
Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫
⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
例如:127.0.0.1等同于① ② ⑦.⓿.⓿.①
3、特殊字符绕过:用。代替.或者localhost代替127.0.0.1
尝试http://127.0.0.1/flag.php查看页面回显
发现 127 172 @被ban,考虑用进制转化的方式绕过尝试
尝试十进制成功获得flag
4、302跳转 Bypass
301、302是http请求的状态码,都代表重定向,301代表永久重定向,302代表临时重定向。
通过file协议查看页面源码,发现限制了127 172 10 192
页面显示禁止内网ip,结合题目提示的302跳转,考虑通过访问302跳转页面进行访问
参考:CTFHub技能树 Web-SSRF 302跳转 Bypass-CSDN博客知道可以将目标地址转变成短连接的形式达到302跳转的目的
尝试后发现无法打开页面,考虑用localhost,绕过成功
4、DNS重绑定 Bypass
DNS重绑定攻击:
同源策略
1、同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易受到 XSS、 CSFR 等攻击。
2、在这个策略下,web浏览器允许第一个页面的脚本访问第二个页面里的数据,但是也只有在两个页面有相同的源时。源是由URI,主机名,端口号组合而成的。这个策略可以阻止一个页面上的恶意脚本通过页面的DOM对象获得访问另一个页面上敏感信息的权限。
3、同源策略是为了安全,确保一个应用中的资源只能被本应用的资源访问
原理:
当我们发起域名解析请求的时候,第一次访问会返回一个ip地址A,但是当我们发起第二次域名解析请求的时候,却会返回一个不同于A的ip地址B。
(在一个域名中写入两个地址,服务器会向DNS服务器发送两次解析请求,目的就是要让第一次解析出来是个外网ip,第二次解析出来是个内网ip。)
打开题目发现提示说附件链接有帮助,打开了rbndr.us dns rebinding service,理解原理后知道dns重绑定需要再同一个域中写入两个ip地址,其中一个为内网ip
尝试后得到flag