RCE远程代码执行漏洞
创始人
2024-03-30 06:58:44
0

远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

·建议假定所有输入都是可疑的,尝试对所有输入提交可能执行命令的构造语句进行严格的检查或者控制外部输入,系统命令执行函数的参数不允许外部传递。

·不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

·不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

·对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

·在发布应用程序之前测试所有已知的威胁。

示例: 

根据提示查看shell.php

$_SERVER 是 PHP 预定义变量之一,可以直接使用,它是一个包含了诸如头信息(header)、路径(path)及脚本位置(script locations)信息的数组。

它进行了sort排序,显示该变量信息,最后他会执行$_SERVER[29]

burp suite  抓包

因为进行了sort排序,所以需要保证修改请求头部信息后的内容能够被推到$_SERVER[29]的位置

而当前$_SERVER[29]的内容是语言,那么尝试修改为 system(ls)

发现system(ls)被推到了【28】的位置,那么向后看是否能够通过修改头部调动位置。

关注到了【30】到【32】的变量,可能是Cache-Conctrol,而我的请求头部没有该信息所以int(0)

在请求头部加上 Cache-Conctrol: no-cache 试试

 发现被被推到了【32】

 通过调整system(ls)执行成功

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...