目录
URL Bypass
数字IP Bypass
302跳转 Bypass
DNS重绑定 Bypass
SSRF绕过方法:
(1)@ http://abc.com@127.0.0.1
(2)添加端口号 http://127.0.0.1:8080
(3)短地址 https://0x9.me/cuGfD
(4)可以指向任意ip的域名 xip.io
(5)ip地址转换成进制来访问 192.168.0.1=3232235521(十进制)
(6)非HTTP协议
(7)DNS RebindingCTFHUB技能树——SSRF(一)-CSDN博客
URL Bypass
@绕过
题目描述:请求的URL中必须包含http://notfound.ctfhub.com,来尝试利用URL的一些特殊地方绕过这个限制吧。
打开环境,根据题目url访问,但是什么都没有
?url=http://notfound.ctfhub.com/127.0.0.1/flag.php
可使用HTTP 基本身份认证绕过:
HTTP 基本身份认证允许 Web 浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
即 http://www.xxx.com@www.yyy.com形式
构造payload: url访问得flag
?url=http://notfound.ctfhub.com@127.0.0.1/flag.php
数字IP Bypass
题目描述:这次ban掉了127以及172.不能使用点分十进制的IP了。但是又要访问127.0.0.1。该怎么办呢
根据题目描述知道点分十进制的IP被禁用,故使用其他方式表达数字
127.0.0.1的十进制:2130706433
127.0.0.1的十六进制:0x7F000001
构造payload: url访问得flag
?url=http://2130706433/flag.php
?url=http://0x7F000001/flag.php
302跳转 Bypass
题目描述:SSRF中有个很重要的一点是请求可能会跟随302跳转,尝试利用这个来绕过对IP的检测访问到位于127.0.0.1的flag.php吧
尝试访问?url=127.0.0.1/flag.php
使用file:///协议 获取index.php、flag.php源码
?url=file:///var/www/html/index.php
?url=file:///var/www/html/flag.php
发现黑名单限制了127 、172、10、192。但没有限制localhost。
localhost也叫local (本地服务器)
127.0.0.1在windows等系统是:本机地址(本机服务器)
通过本机的host文件,windows自动将localhost解析为127.0.0.1所以可以localhost代替127.0.0.1
构造payload: 得到flag
?url=localhost/flag.php
DNS重绑定 Bypass
题目描述:关键词:DNS重绑定。剩下的自己来吧,也许附件中的链接能有些帮助
附件文章
尝试访问?url=127.0.0.1/flag.php
使用file:///协议 获取的index.php、flag.php源码与上题一样,但使用localhost无法得到flag。
使用DNS重绑定
通过
rbndr.us dns rebinding service
DNS重绑定:
浏览网页过程中,用户在地址栏中输入包含域名的网址,浏览器通过DNS服务器将域名解析为IP地址,然后向对应的IP地址请求资源,最后展现给用户。
即 域名 =>公共DNS服务器 => IP
作为域名的所有者,可以随时设置解析IP: 用户第一次访问,解析域名test.gm7.org的IP为104.21.26.222 在用户第二次访问前,修改域名解析的IP为127.0.0.1 用户第二次访问,解析域名test.gm7.org的IP为127.0.0.1
当我们发起域名解析请求的时候,第一次访问会返回一个ip地址A,但是当我们发起第二次域名解析请求的时候,却会返回一个不同于A的ip地址B。
渗透测试DNS重绑定_dns重绑定 ssrf-CSDN博客
网站设置DNS:
这个网站会随机指向两个绑定地址的其中一个,由于127段是回环地址,将AB设置成127.0.0.1
和127.0.0.2
,每一个都能访问localhost
故构造payload: 得到flag
?url=7f000001.7f000002.rbndr.us/flag.php