RCE漏洞

    RCE漏洞概述

  远程命令执行/代码注入漏洞,英文全称为Reote Code/CommandExecute,简称RCE漏洞。PHPJava等Web开发语言包含命令执行和代码执行函数,攻击者可以直接向后台服务器远程执行操作系统命今或者运行注入代码,进而获取系统信息、控制后台系统或写入恶意文件Webshell,从而达到攻击网络的目的。

RCE 漏洞产生条件主要包含以下三个方面:

(1)用户可以控制前端传给后端的参数,
(2)传入的参数被漏洞函数执行。
(3)用户输入参数未被验证或有效过滤。

漏洞分类

   RCE漏洞分为命令执行漏洞和代码注入漏洞,在利用RCE漏洞的时候经常使用到操作系统的管道符。

命令执行漏洞

    在PHP开发语言中,包含命令执行函数:eval、assert、preg_replace、create_function、array_mapcall user fimc、call user func array、anray filter、uasort 等,这类函数可以执行系统命令,使用不当会造成命令执行漏洞。
下面我们基于pikachu平台,演示一个完整的命令执行漏洞测试过程

1.进去到pikachu训练平台打开RCEping

2.查看源码

后端对接收到的参数未做任何过滤和处理,并使用shellexec函数执行命令,从而造成远程命令执行漏洞。

if(isset($_POST['submit']) && $_POST['ipaddress']!=null){$ip=$_POST['ipaddress'];
//     $check=explode('.', $ip);可以先拆分,然后校验数字以范围,第一位和第四位1-255,中间两位0-255if(stristr(php_uname('s'), 'windows')){
//         var_dump(php_uname('s'));$result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理}else {$result.=shell_exec('ping -c 4 '.$ip);

3.在编辑框输入127.0.0.1点击ping查看

4.漏洞利用

输入 ping & ipconfig

代码注入漏洞

    在PHP开发语言中,包含代码执行函数:system、exec、shell exee、pentl exec、popen、proc_popenpasthmn等,这类函数可以执行PHP代码,使用不当会造成代码注入漏洞上下面基于pikachu平台,演示一个完整的代码注入漏洞测试过程

1.源码分析

使用eval函数执行命令,对后端的参数未进行过滤。

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

2.在输入框输入phpinfo();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/557597.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity访问安卓(Android)或苹果(iOS)相册

1.下载Native Gallery for Android & iOS插件 2.在场景中添加截图按钮、选择图片按钮、选择视频按钮等 using OpenCVForUnity.CoreModule; using OpenCVForUnity.ImgprocModule; using OpenCVForUnity.UnityUtils; using System.Collections; using System.Collections.Gen…

CSS其他属性

文章目录 1. vertical-align1.1. 概念1.2. 常用值1.3. 作用1.4. 出现的情况一1.4.1. 原因1.4.2. 解决方案 1.5. 出现情况二1.5.1. 解决方案一1.5.2. 解决方案二1.5.3. 解决方案三 1.6. 出现情况三1.6.1. 原因1.6.2. 解决方案 2. 溢出效果2.1. 作用2.2. 属性名 3. 隐藏效果3.1. …

vue3 + ts +element-plus + vue-router + scss + axios搭建项目

本地环境&#xff1a; node版本&#xff1a;20.10.0 目录 一、搭建环境 二、创建项目 三、修改页面 四、封装路由vue-router 五、element-plus 六、安装scss 七、封装axios 一、搭建环境 1、安装vue脚手架 npm i -g vue/cli 2、查看脚手架版本 vue -V3、切换路径到需…

Eclipse For ABAP:安装依赖报错

1.安装好Eclipse后需要添加依赖,这里的地址: https://tools.hana.ondemand.com/latest 全部勾选等待安装结束; 重启后报错:ABAP communication layer is not configured properly. This might be caused by missing Microsoft Visual C++ 2013 (x64) Runtime DLLs. Consu…

通过 Socket 手动实现 HTTP 协议

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

线程(二)——互斥锁的补充+条件变量+信号量总结

&#x1f31f;条件变量代码&#x1f31f; &#x1f680;信号量代码&#x1f680; c并发编程&#xff08;书籍&#xff09; ✨互斥信号量——锁补充 ✨条件变量  &#x1f3ad;初始化销毁  &#x1f3ad;等待激活信号量  ✨错误代码片段 ✨信号量  &#x1f3ad;基本接口  …

Java 学习和实践笔记(43):数组的四个基本特点和学习任务

数组&#xff0c;在Java里&#xff0c;也是一个对象。 学习数组主要学习以下内容&#xff1a; 数组是相同类型数据的有序集合。其中&#xff0c;数组中的每一个数据称为一个元素。元素可以通过一个索引&#xff08;下标&#xff09;来访问它们。 数据有以下四个基本特点&…

小车侧方位停车过程的动态模拟matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 小车侧方位停车过程的动态模拟matlab仿真。仿真得到小车的停车动画&#xff0c;小车移动的xy轴坐标以及角度变换。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLA…

将OpenCV与gdb驱动的IDE结合使用

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9.0开源计算机视觉库在 Linux 中安装 下一篇&#xff1a;将OpenCV与gcc和CMake结合使用 ​ 能力 这个漂亮的打印机可以显示元素类型、、标志is_continuous和is_subm…

Elasticsearch:将 ILM 管理的数据流迁移到数据流生命周期

警告&#xff1a;此功能处于技术预览阶段&#xff0c;可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题&#xff0c;但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。目前的最新版本为 8.12。 在本教程中&#xff0c;我们将了解如何将现有数据流&#xff0…

【高频SQL题目进阶版】1440.计算布尔表达式的值

错误答案&#xff1a; 我一开始以为&#xff0c;既然都能拿到值了&#xff0c; 那么把它们合并起来就可以了。后来发现不行。。 1 concat concat(v1.value ,operator ,v2.value) 它不是一个条件&#xff0c;而只是一个字符串 。 而if (condition, true_value, false_value)…

C++开发基础——智能指针

一&#xff0c;智能指针 1.智能指针简介 智能指针是用法和行为类似于指针的类对象。 智能指针的底层对原始指针做了一定的封装。 智能指针除了像指针一样可以存储变量的地址&#xff0c;还提供了其他功能&#xff0c;比如可以管理动态内存分配&#xff0c;对引用进行计数等…