ssrf学习2——内网ip绕过

环回地址绕过

尝试访问内网 也就是127.0.0.1里面的flag.php

但是如果真的去访问127.0.0.1/flag.php 还是不行

也就是说127.0.0.1被过滤了

进制转换

127.0.0.1是点分十进制

可以用二进制八进制十六进制来绕过过滤

0x7F000001/flag.php

017700000001/flag.php(八进制前面是0)

成功绕过

也可以用八进制或者十六进制的点分式

0177.0000.0000.0001/flag.php

0x7F.0x00.0x00.0x01/flag.php 也可以只转一个0x7F.0.0.1/flag.php

添加@绕过

平常我们传入的url是url=http://127.0.0.1

如果 我们传入的url是url=http://quan9i@127.0.0.1,它此时依旧会访问127.0.0.1

示例如下 题目给出提示

在这里插入图片描述

要求必须以http://notfound.ctfhub.com开头,但我们访问内网文件的话,有这个,该怎么访问呢,这个时候就用到了@字符,我们构造payload如下

复制代码
url=http://notfound.ctfhub.com@127.0.0.1/flag.php

在这里插入图片描述

特殊数字(例如②)

有时候可以用特殊数字来绕过,构造特殊的127.0.0.1,如1②7.0.0.1

在这里插入图片描述

句号替代.绕过

来代替.

在这里插入图片描述

省略0

当过滤127.0.0.1整体时,还有一种绕过方式就是省略中间的0,这个时候也是可以访问的

特殊0

在windows中,0代表0.0.0.0,而在linux下,0代表127.0.0.1,如下所示

复制代码
url=http://0/flag.php

302重定项绕过

若传入的私网地址被限制可以使用302重定向绕过。这需要一台公网服务器和它的公网IP,在服务器中创建重定向的代码文件,提交公网IP路径下的重定向代码文件,使SSRF漏洞服务器或主机访问从而重定向到自己内网地址或本机地址。

具体步骤就是我们在自己的公网服务器上设置302重定向到127.0.0.1/flag.php

然后通过访问我们的公网ip 显示出127.0.0.1/flag.php的内容

在自己的公网服务器上创建tmp/302/index.php

并且写入代码

php 复制代码
<?php  
header('Location: http://127.0.0.1/flag.php');

然后我们监听一下7777端口

php73 -S 0.0.0.0:7777

再去访问

即可成功得到

DNS重绑定

ssrf的防御机制

对于用户请求的URL参数,首先服务器端会对其进行DNS解析,然后对于DNS服务器返回的IP地址进行判断,如果在黑名单中,就pass掉。 但是在整个过程中,第一次去请求DNS服务进行域名解析到第二次服务端去请求URL之间存在一个时间差,利用这个时间差,我们可以进行DNS 重绑定攻击。我们利用DNS Rebinding技术,在第一次校验IP的时候返回一个合法的IP,在真实发起请求的时候,返回我们真正想要访问的内网IP即可。 要完成DNS重绑定攻击,我们需要一个域名,并且将这个域名的解析指定到我们自己的DNS Server,在我们的可控的DNS Server上编写解析服务,设置TTL时间为0,这是为了防止有DNS服务器对解析结果进行缓存。这样就可以进行攻击了,完整的攻击流程为:

服务器端获得URL参数,进行第一次DNS解析,获得了一个非内网的IP 对于获得的IP进行判断,发现为非黑名单IP,则通过验证 服务器端对于URL进行访问,由于DNS服务器设置的TTL为0,所以再次进行DNS解析,这一次DNS服务器返回的是内网地址。

攻击原理:利用服务器两次解析同一域名的短暂间隙,,更换域名背后的ip达到突破同源策略或过waf进行ssrf的目的。

DNS中的机制TTL:域名和IP绑定关系的Cache存活的最长时间。

所以最理想的TTL值为0

DNS重绑定这里简单的说就是我们先提供一个ip,然后在服务端进行解析的过程中再传127.0.0.1,此时就可能会出现访问到本地文件的情况 举个栗子,我们设置一个为127.0.0.1,另一个随便写一个公网的ip

然后去访问这个域名

域名重绑定网站

rbndr.us dns rebinding service

参考:

https://www.bilibili.com/video/BV1Fw41157v4?vd_source=294c9cb943c812caed99031fabfb135d

从一文中了解SSRF的各种绕过姿势及攻击思路-腾讯云开发者社区-腾讯云

相关推荐
humors2217 分钟前
今年我正在看、看完和还没看的书单(不定期更新)
学习·阅读·读书·书单·书籍
泡泡鱼(敲代码中)29 分钟前
MySQL 学习笔记:DCL、函数与约束 —— 安全、效率、完整性的三板斧
开发语言·笔记·sql·学习·mysql·gitee
爱吃苹果的日记本1 小时前
数据结构第五课
数据结构·学习
传奇开心果编程3 小时前
【Jetpack Compose基础语法学与练】第6课 TextField文本输入,字符串状态与输入交互
学习·前端框架·kotlin·android jetpack
kaixin_啊啊3 小时前
中国研究生数学建模竞赛(华为杯)学习笔记——AI绘图方法
人工智能·笔记·学习·数学建模
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(73):MemGAS——让长期对话记忆按问题选择粒度并关联证据
论文阅读·人工智能·学习·开源·github
李白客4 小时前
数据库培训怎么选?零基础到DBA的学习路线与机构认证对比(2026)
数据库·学习
留白_5 小时前
代运营面试问答
学习
是隼人5 小时前
buuctf-pwn PWN8题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
ps酷教程6 小时前
数据权限DataPersmission
java·学习