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

posted @ 2025-04-20 19:59  sun010  阅读(405)  评论(0)    收藏  举报