WEB安全

Dns Auto Rebinding

ssrf时难免会被防火墙拦截恶意返回值,使用过xip.io但效果一般。项目地址: Github

ssrf、ssrf内网地址fuzz、dns二次rebinding、支持ipv4/ipv6、支持ip地址转换码、dns记录污染(文末一个0day为例)。脑图在脑子里,懒得画了。

support Record Type and Encoding:

配置监听服务器example.com:

record type record record value
A ns server ip
NS test ns.example.com

sudo pip install ipaddr

修改lib/config.conf: maindomain = test.example.com. 注意根地址.要加

-y选项指定以什么记录类型返回:

-y A/AAAA/CNAME/MX, --Type=A/AAAA/CNAME/MX Record Type , A By Default

-t选项指定TTL值:

-t 300, --TTL=300 ttl value , 0 By Default

直接A记录返回ipv4地址:

sudo ./main.py

server: [21:54:16] client ip:44486 => A => 192.168.1.1.test.example.com.

hex编码:

sudo ./main.py -e hex

server: [22:00:42] client ip:30150 => A => 31302e302e302e31.test.example.com.

int编码:

sudo ./main.py -e int

server: [22:03:00] client ip:5240 => A => 3232235777.test.example.com.

因为waf会识别出内网地址才用的上本项目,那么waf大可识别进制转换这种,所以要自己写个地址转换方法:

num to en:

sudo ./main.py -e en

server: [22:10:22] client ip:8434 => A => bjckbgikbkb.test.example.com.

dns二次rebinding:

选择性输入目标信任的地址,比如在ssrf时防火墙在验证dns返回值是否存在于白名单。默认为发起请求的地址。(记得特殊情况需要指定记录类型)

第一次:

第二次:

dns记录污染:

sudo ./main.py -p "<script>alert(/xss/)</script>" -y CNAME

这个怎么玩取决于你的小脑袋瓜的脑回路了。如果防火墙还要验证是否为信任地址的话修改lib/common.py:

ipListBuild: 批量生成网段地址,选择性编码,适合ssrf内网地址fuzz。


原文地址: http://www.thinkings.org/2017/06/25/dns-auto-rebinding.html  作者:Tr3jer_CongRong

(0)

热评文章

发表评论