pikachu—RCE(远程命令、代码执行)

本文详细介绍了RCE(远程命令执行)漏洞,包括漏洞产生的原因,如开发人员未对特殊函数入口进行过滤,以及命令执行攻击常用的PHP函数。通过实验测试展示了如何利用未处理的命令执行漏洞获取敏感信息。同时,文章还提到了远程代码执行的情况,指出应严格判断前端输入以避免此类漏洞。最后,区分了命令执行和代码执行的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RCE漏洞概述

可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

远程系统命令执行

命令执行漏洞(Command Execution)即黑客可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限

更常见的命令执行漏洞是发生在各种Web组件,包括Web容器、Web框架、CMS软件、安全组件

漏洞产生的原因:

1. 由于开发人员编写源码,没有针对代码中可执行的特殊函数(可控制变量)入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。

  >   对用户的输入命令安全检测不足,直接参与到操作系统的交互当中
  >   应用调用执行系统命令的函数
  >   将用户输入作为系统命令的参数拼接到了命令行中

2. 命令注入攻击中WEB服务器没有过滤类似system ( ) ,eval ( ) ,exe ( ) 等函数是该漏洞攻击成功的最主要原因。
在这里插入图片描述
应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击

### 实现远程命令执行 在Pikachu靶场中存在两种主要类型的远程代码执行(RCE)漏洞,分别是`exec "ping"`和`exec "eval"`。前者模拟了远程系统命令执行的场景,在这种情况下,攻击者能够通过该漏洞来执行诸如`ping`这样的系统命令[^1];后者则允许攻击者提交一段PHP代码并由服务器端解释器运行这段代码,从而实现了更广泛的潜在危害。 对于`exec "ping"`而言,当应用程序未对用户输入做适当过滤就将其传递给了操作系统去执行时就会出现问题。这通常发生在开发者为了方便而直接采用未经验证的数据构建shell指令的情形之下。例如,假设有一个表单用于接收IP地址并向其发送ICMP回显请求,则恶意用户可能会尝试构造特殊的字符串绕过简单的校验机制进而触发任意命令执行行为[^2]。 至于`exec "eval"`的情况更为危险一些,因为它涉及到动态解析与评估传入的内容作为合法脚本片段处理。如果缺乏必要的防护措施(如黑名单/白名单检查),那么任何可被当作有效语法结构的东西都可能被执行起来——这意味着不仅限于读取文件、创建新进程甚至修改配置设置等敏感动作都有可能发生。 #### 解决方案建议 为了避免上述提到的安全风险,应当采取以下预防手段: - **最小权限原则**:尽可能降低Web应用本身及其关联组件所拥有的特权等级,减少一旦遭受入侵后的损失范围; - **定期更新依赖库版本**:及时跟进官方发布的补丁程序以修复已知缺陷,并移除不再维护的老化软件包; - **启用WAF(Web Application Firewall)**:部署专业的防火墙设备可以帮助识别异常流量模式并对可疑活动作出响应; - **日志审计跟踪记录**:保持良好的文档习惯有助于快速定位问题根源所在,同时也便于事后分析总结经验教训。 ```bash # 修改php.ini配置文件使能URL包含功能(仅作实验用途,请勿应用于生产环境) cd /etc/php/7.3/apache2/ vi php.ini allow_url_include=on service apache2 restart service apache2 status ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值