SSRF3-URL Bypass( 如何绕过ssrf过滤`@`+302跳转+DNS 重绑定)
一.题目链接:
https://www.ctfhub.com/#/skilltree
这里把URL Bypass下面的一系列题目都写出来
二.基础知识
2.1 如何绕过ssrf过滤
具体的可以参考这篇文章:https://www.freebuf.com/articles/web/401882.html
- 1:
 @绕过,它的大致意思就是,@前面的不会访问,访问后面的被过滤的网址,从而绕过过滤
eg:http://notfound.ctfhub.com@127.0.0.1/302.php,执行后面的127.0.0.1/302.php文件- ssrf漏洞的利用:
 2.2 什么是SSRF的302跳转
- 概念:是一种利用HTTP 302临时重定向响应,将服务器发起的内部请求劫持到攻击者指定地址的技术。核心目的是为了绕过SSRF防护或访问原本无法直接请求的内网服务
 - 如何利用:可以将被防护的网址变成短链,让机器识别不出,在通过这个短链找到后面攻击者真正想访问的网址
 
2.3 什么是DNS 重绑定?
- 参考链接:https://zhuanlan.zhihu.com/p/572743280
 - 概念:大体意思就是说DNS重绑定是一种利用DNS解析时效性和浏览器同源策略漏洞的攻击技术,通常用于绕过防火墙/ip限制,攻击内网服务(如SSRF,访问本地API等)。
 - 核心原理:攻击者控制一个域名,首次解析返回合法外网ip,绕过检查,后续解析返回内网ip。浏览器或服务器因缓存机制,会信任之前的DNS记录,导致实际请求发送到内网
 - 关键点:利用时间差!!!
 TTL=0:强制每次查询都重新解析,避免缓存,首次合法,后续恶意:绕过初始检查
三.开始解题
3.1.URL Bypass
1.题目说必须要包含这个网址,但是又要访问1207.0.0.1/flag.php文件,只能用@了

?url=http://notfound.ctfhub.com@127.0.0.1/flag.php

3.2.数字ip Bypass
1.这次又过滤掉了数字127.0.0.1,那就试试0.0.0.0,也可以变成十进制:2130706433

2.这里不能使用0.0.0.0,只能换成十进制的,成功了

3.3.302跳转
1.先阅读题目,又是涉及到302的跳转

2.直接访问重要的文件地址,发现警告

3.于是我们通过file://查看网页源码,到底是一个怎么限制法
?url=file:///var/www/html/index.php
?url=file:///var/www/html/flag.php
1.这个是index.php的代码,

2.这个是flag.php的代码

4.根据以上代码,可以很清楚的看到设置了黑名单,对127,172,10,192的网段进行了过滤,所以可以用0.0.0.0代替访问,得到flag

5.或者我们尝试对127.0.0.1/flag.php生成短链进行访问
我这里使用的是这个制造短链网址,可能要开外网:https://app.bitly.com/
对http:127.0.0.1/flag.php网站进行短链接

3.3.DNS 重绑定Bypass
1.我们照例先通过file://查看index.php和flag.php的源代码


2.意思和上一题的差不多,也是对这些网段进行了限制,直接把127.0.0.1变成0.0.0.0就行了

3.当然这题考察的是DNS重定向,我们还是按照这个思路来一遍吧
通过这个网址设置DNS:https://lock.cmpxchg8b.com/rebinder.html
这里随便一个网址就行了,后面跟着/flag.php


                    
                
                
            
        
浙公网安备 33010602011771号