RCE代码及命令执行漏洞全解(30)

news2024/12/23 1:22:36

web应用中,有时候程序员为了考虑灵活性,简洁性,会在代码中调用代码或执行命令执行函数去处理。

比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能够控制这些字符串,将代码执行漏洞,同样调用系统命令处理,将造成命令执行漏洞。

在这里插入图片描述

 危害是执行脚本代码,在这里插入图片描述

 危害是执行系统命令,系统命令就是命令提示符可以执行出来的语句,比如ip config就能查询到电脑的IP,系统命令可以做很多事情,影响到电脑。

执行脚本代码和执行系统命令,

代码执行是围绕着脚本语言来讲的,如果是php的脚本,就能执行出php的一些脚本命令,java网站的就执行java的脚本命令。而命令执行是围绕着操作系统来的,Linux的就就是linux语句,Windows就Windows语句。

用php代码的案列演示一下

写一串简单的代码

 eval的意思时会把括号里面的字符串当作代码去执行,然后我现在去访问一下,给x传递一个值phpinfo去访问一下试试

在测试一下,传递x值为echo 123 

 结果就输出个123。

把代码里面eval换成system,然后执行输出出来

system就是会把字符串当作系统命令去执行

 然后输入一个系统命令,查看ip地址的

 这个就属于命令执行。

漏洞的产生分两种情况,第一种情况是根据现实的应用情况,第二种情况是网站代码里面的情况,

先说代码层面,

漏洞形成条件:可控变量(通过传递参数可以改变变量值),漏洞函数(使用的那个函数对这个变量进行操纵,刚刚演示了一个eval的函数字符串当作代码去执行,system是调用php去执行系统命令,他们最后做出的漏洞,一个是代码执行一个是系统命令,如果将函数换成文件上传类函数,文件提交或者输出函数就会造成不同的漏洞,)

所以漏洞的类型由来的函数决定,漏洞是否存在将由可控变量来决定。缺一不可

网站源码是有类型分类的,有的就是购物,有的就是文件上传,或者社区论坛,因为类型不一样,网站程序员写代码的时候也会哟区别。比如说是文件管理的网站,它的代码就是以文件管理为主,而他的可能产生的漏洞也是文件下载或者上传的漏洞比较多一些。所以网站的应用决定漏洞的走向。

rce的漏洞比其他网站的几率要小,根据网站的漏洞去判断可能出现上面漏洞,比如一个单纯的新闻网站就不可能出现代码执行。

关于漏洞检测分为两个方向,白盒和黑盒

白盒就是你知道对方网站的源码,相关信息,黑盒就是啥都没有,

白盒有源码我们就可以在源码中分析有没有这个漏洞,叫做代码审计。黑盒方向没有对方源码我们就可以用一下漏扫工具,之外还可以去找利用一些网上的公开漏洞,刚好公开的漏洞和他是对应的,他所说的程序和版本漏洞,我们就可以用网上公开漏洞去检查测它,第三种方法就是手工,根据对方的参数值和功能点去判定,拿老师的博客网站做演示

 这就是一个简单的博客网站,不可能会产生上面文件上传的那种漏洞,然后参数值也是正常的123,如果参数值是echo 123,和php代码一些东西有关,就可能存在问题,就可以用phpinfo()去测试一下。

实战中还可能参数值加密,然后解密之后还可以继续测试。

#案列演示

打开墨者靶场,命令注入执行分析

 这个功能点有这么个功能,进行类似的像我们电脑上ping命令,这相当于就满足了命令,明显可能出现命令执行漏洞,可控变量和漏洞函数都存在。第一不要去分析是什么操作系统,

通过查看数据包分析出来了是linux操作系统,然后如果输入字符串的话网站会提示格式正确,所以网站还有一个检测输入的是不是ip地址,

 

 这时候我们可以使用Linux执行多条的命令的符号  |   用这个符号连接起来ip再去操作

 这次的提示有一个组织测页面更多对话框,这就是个前端验证,就可以右键源代码去分析,

 这是个js代码,这个检测不是服务端的检测,onsubmit鼠标事件之后,就会返回f-check-i开始检测ip,我们把它禁用掉就会了,这个可以抓包,我们打开burp,然后输入一个正常ip127.0.0.1,抓住数据包之后ip后面加上|ls,这个命令是查看所在文件夹目录

就出现了,然后我们直接读取文件里面的内容,就能知道要提交什么, 

 |cat<文件名字,语句是这样的,有时候空格不行可以换成%20试试,可能网站有检测就换换别的,刚刚老师用ls 文件名和ls%20文件名,就没有显示出来。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试真题B卷 Java 实现【求最大连续bit数】,附详细解题思路

一、题目描述 求一个int类型数字对应的二进制数字中1的最大连续数&#xff0c;例如3的二进制为00000011&#xff0c;最大连续2个1。 二、输入描述 输入一个int类型数字。 三、输出描述 输出转成二进制之后连续1的个数。 四、解题思路 首先通过输入获取一个 int 类型的数…

K8s环境使用Triton实现云端模型推理

前置条件&#xff1a;K8集群、helm 1、以模型名作为目录名&#xff0c;创建目录 mkdir resnet50_pytorch 2、将模型文件、配置文件&#xff08;输入、输出等&#xff09;存到刚创建的目录下&#xff0c;resnet50_pytorch目录下文件层级结构如下 model-respository/ └── …

【C++模版】模版进阶 {非类型模版参数; 模版的特化; 模版的分离编译; 模版总结}

一、非类型模版参数 模板参数分类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之后的参数类型名称。非类型形参&#xff1a;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常量来…

mysql中的锁浅析

前言 MySQL 锁机制是保证多个并发事务同时访问数据库时数据一致性的重要手段&#xff0c;也是 MySQL 的重要特性之一。在实际开发使用 MySQL 数据库时&#xff0c;了解并掌握 MySQL 的锁机制非常重要&#xff0c;因为不正确的锁机制使用很容易出现严重的性能瓶颈和数据不一致等…

尚硅谷大数据hadoop教程_mapReduce

p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分&#xff1a;Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 &#xff08;1&#xff09;创建maven…

写代码?文心一言or文言文,谁更胜一筹?新工具或许可堪重任

中国版的ChatGPT“文心一言”写代码能力尚浅 被称为中国版的“ChatGPT”的“文心一言”可以说是上市几个月了&#xff0c;很多用户都受到了邀请码来体验&#xff0c;遗憾的是&#xff0c;小编早就申请了&#xff0c;但还在排队等待中。虽然没有亲自体验过百度的“文心一言”&a…

NET HELPMSG 3534 报错(以及其他一些在配置过程中遇到的问题)

使用了带管理员权限的 PowerShell&#xff08;即在管理员权限下运行CMD&#xff09; 然后进行安装和服务启动操作 1、清空 MySQL 下的 data 文件夹&#xff1b; 2、确保系统环境变量中已经配置了 mysql 的 bin 目录到Path中&#xff1b; 3、执行以下命令&#xff1a; sc delet…

基于条件风险价值CVaR的微网动态定价与调度策略(matlab代码)

目录 1 主要内容 模型示意图 电能交易流程 模型亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序复现文章《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》&#xff0c;建立基于主从博弈的考…

【封装frame模型 Objective-C语言】

一、计算每行的高度 1.计算每行的高度,它就等于最后这个控件, 如果说,当前这行是有配图的,那么这个行高,就等于这个配图最大的Y值,加上一个margin, 如果说,这行是没有配图的 如果说,这行是没有配图的 那么就等于它正文的最大的Y值,加一个margin, 是不是很简单,…

海昌海洋公园携手盖雅工场,数字化人才管理助力企业踏浪前行

五一假期刚刚结束&#xff0c;但各地主题公园里的游客依然爆满。在这种客流高峰期&#xff0c;游客更加关注乐园的细节和服务水平&#xff0c;保障服务品质和顾客体验是各地主题乐园在竞争中脱颖而出的关键因素之一。为此&#xff0c;乐园高峰期需要大量招聘短期工、临时工、兼…

全网最详细,全链路压力测试整理,银行系统项目...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 软件测试银行业务…

k8s污点与容忍

1.前言 污点是给node节点打上污点标签&#xff0c;使得pod不能往该node节点上调度&#xff0c;污点有三种模式&#xff0c;分别是NoSchedule、PreferNoSchedule、NoExecute&#xff0c;容忍是给pod打上和node节点一样的污点标签&#xff0c;使pod能调度到带有该污点标签的node…

为什么使用 Javascript 流程图进行过程可视化

DhtmlxDiagram 是一个随时可用的库&#xff0c;只需几行代码就能生成任何你需要的图表。借助自动布局和实时图编辑器&#xff0c;以整齐的层次结构可视化复杂数据。JavaScript dhtmlxDiagram可以向Web应用程序中添加漂亮的交互式图表&#xff0c;图表和图形。借助这种轻巧而快速…

第六篇、基于Arduino uno,控制180度舵机(SG90)转动——结果导向

0、结果 说明&#xff1a;让舵机转动&#xff0c;需要用PWM来控制&#xff0c;下面的程序是舵机从0度一直转到180度&#xff0c;然后又从180度转到0度的这样一个过程。 1、外观 说明&#xff1a;虽然舵机的型号有很多种&#xff0c;但是只要是180度的舵机&#xff0c;控制方…

XVS-460-15MPI-1-10伊顿触摸屏

​ XVS-460-15MPI-1-10伊顿触摸屏 触摸屏感应到我们手指的触摸是因为当手指触摸屏幕上的一个具体位置时&#xff0c;相当于为屏幕发送了一个精确的电子信号。触摸屏有很多类型&#xff0c;大致分为电阻式触摸屏和电容式触摸屏。目前应用最广泛的是“电容式触摸屏”。 我们手机…

华为OD机试之考勤信息(Java源码)

考勤信息 题目描述 公司用一个字符串来表示员工的出勤信息 absent&#xff1a;缺勤late&#xff1a;迟到leaveearly&#xff1a;早退present&#xff1a;正常上班 现需根据员工出勤信息&#xff0c;判断本次是否能获得出勤奖&#xff0c;能获得出勤奖的条件如下&#xff1a; 缺…

Python编程环境搭建:Windows中如何安装Python

在 Windows 上安装 Python 和安装普通软件一样简单&#xff0c;下载安装包以后猛击“下一步”即可。 Python 安装包下载地址&#xff1a;https://www.python.org/downloads/ 打开该链接&#xff0c;可以看到有两个版本的 Python&#xff0c;分别是 Python 3.x 和 Python 2.x&…

Nginx网站服务详解(编译安装及系统服务添加)

目录 一、Nginx的相关知识 1&#xff09;Nginx的简介 Nginx&#xff1a; Apache&#xff1a; 2&#xff09;Apache与Nginx的区别 Nginx对比Apache的优势&#xff1a; apache相对于nginx的优点 &#xff1a; 3&#xff09;Nginx的进程 Nginx有两个进程&#xff1a;…

Java的volatile

介绍 volatile volatile 关键字可以说是 Java 虚拟机提供的最轻量级的同步机制&#xff0c;但是它并不容易被正确、完整地理解&#xff0c;以至于许多程序员都习惯去避免使用它&#xff0c;遇到需要处理多线程数据竞争问题的时候一律使用 synchronized 来进行同步。了解 volat…

Flutter:功能型组件(2)- 弹出菜单、弹出提示

弹出菜单 PopupMenuButton 使用PopupMenuButton&#xff0c;点击时弹出菜单 Center(child: PopupMenuButton<String>(initialValue: Math, // 初始值itemBuilder: (context) {// 子项构造函数return <PopupMenuEntry<String>>[const PopupMenuItem(value:…