当前位置: 首页 > news >正文

RCE和php文件上传

一、远程命令执行(RCE)

RCE漏洞概述 RCE漏洞允许攻击者通过某种方式在目标服务器上执行任意命令。这种漏洞通常出现在服务器端语言中,如PHP。

RCE漏洞原理 PHP中的一些函数可以执行命令或代码,但如果对这些函数的输入未加限制,就可能引发RCE漏洞。

        1.执行PHP代码的函数 以下函数可能存在RCE风险:

$code =$_GET['code'];
eval($code); // 动态执行PHP代码
assert($code); // 断言执行PHP代码
echo preg_replace('/test/e',$code,'hello test'); // 正则表达式执行PHP代码
  1. 执行系统命令的函数 以下函数可用于执行系统命令:
$cmd =$_GET['cmd'];
echo `$cmd`; // 反引号执行系统命令
echo system($cmd); // system函数执行系统命令
echo shell_exec($cmd); // shell_exec函数执行系统命令

示例请求:http://192.168.10.111/day03/rcmd.php?cmd=whoami

  1. 命令链接符的使用
  • commend && 2commend:逻辑与操作,前命令失败则不执行后命令。
  • 1commend & 2commend:后台执行,两个命令同时执行。
  • 1commend || 2commend:逻辑或操作,前命令成功则不执行后命令。
  • 1commend | 2commend:管道操作,将前命令的输出作为后命令的输入。
  1. RCE漏洞防御措施
  • 避免使用危险的函数。
  • 对用户输入进行严格的过滤和验证。

二、文件上传漏洞

  1. 文件上传漏洞概述 文件上传漏洞允许攻击者上传可执行文件到服务器,进而执行恶意代码。

  2. 文件上传漏洞利用 以下是基于upload-lab的学习笔记,展示了文件上传漏洞的常见利用方法:

(1)前端检查绕过 直接删除表单的onsubmit事件。

(2)MIME类型验证绕过 通过抓包工具修改上传文件的Content-Type。

(3)黑名单限制绕过 使用黑名单中未列出的文件后缀名,如.php3、.phtml等。

(4)全面黑名单绕过 上传.htaccess文件,修改服务器配置,使所有文件按PHP执行。

SetHandler application/x-httpd-php

(5)大小写绕过 利用服务器对大小写不敏感的特性,上传不同大小写的文件后缀。

(6)空格和点绕过 在文件名末尾添加空格或点,利用Windows自动去除的特性绕过验证。

  1. 文件上传漏洞防御
  • 使用白名单限制可上传的文件类型。
  • 对上传文件进行重命名,避免使用用户提供的文件名。
  • 对上传文件进行内容检查,确保其安全。

http://www.lryc.cn/news/415190.html

相关文章:

  • nextjs 实现TodoList网页应用案例
  • U盘格式化了怎么恢复数据?教你U盘恢复妙招
  • 化工厂室内外4G/5G+蓝牙+GPS/北斗RTK人员定位系统解决方案
  • 【知识跨境电商API接口丨python数分实战】国际电商平台用户成交转化分析
  • 【SpringBoot】Java对象级联校验
  • 【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)
  • CSS实现元素hover时背景色拉伸渐变
  • Activity收不到bundle值
  • ZBrush
  • 【多线程-从零开始-贰】线程的构造方法和常见属性
  • 力扣:100379. 新增道路查询后的最短距离 I(Java,BFS)
  • 程序开发的常用设计思想
  • Qt之Gui
  • Linux操作系统之进程信号
  • 科普文:微服务之Spring Cloud Alibaba消息队列组件RocketMQ工作原理
  • 黑马头条vue2.0项目实战(五)——首页—频道编辑
  • Java:基础语法
  • 安装bedtools详细步骤和详细介绍bedtools用法
  • 21 - grace数据处理 - 补充 - 泄露误差改正 - Slepian局部谱分析法(一) - slepian分析法理论理解
  • WLAN国家码与信道顺从表
  • 行为型设计模式1:状态/策略/命令
  • 【知识专栏丨python数分实战】天猫订单数据分析及可视化|taobao天猫订单接口
  • [kimi笔记]为什么csc.exe不可以双击运行
  • 护眼大路灯哪个牌子好?2024学生护眼大路灯推荐
  • Vue项目中手搓滑动校验模块-demo
  • Socket如何实现客户端和服务器间的通信
  • 基于Spring boot + Vue的校园论坛
  • RabbitMQ高级特性 - 生产者消息确认机制
  • webpack的loader机制
  • (STM32笔记)十一、通过EXTI外部中断实现 按键控制LED