首页 > 其他分享 >web漏洞:RCE代码及命令执行

web漏洞:RCE代码及命令执行

时间:2024-03-14 22:29:54浏览次数:20  
标签:web 操作系统 命令 外部命令 代码 漏洞 代码执行 RCE 执行

概述:

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

远程系统命令执行:

(危害:执行系统命令)

一般出现这种漏洞是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口(比如路由器,防火墙,入侵检测等设备的web管理界面上)

一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器

补充知识:Ping测试是一种网络工具,用于测试两台计算机之间的连接是否正常。通过发送一个ICMP数据包到目标计算机,并等待它的回应,可以检测网络连接的延迟和丢包情况。Ping测试通常用于诊断网络问题,确定网络连接是否稳定以及网络延迟的情况。

远程代码执行:

同样后台有时候会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞(可能是使用了代码执行的函数,或者使用了不安全的反序列化)

因此如果需要给前端用户操作类的API接口,一定需要对接口输入的内容进行严格的判断(比如试试严格的白名单策略)

补充知识:API接口是指应用程序编程接口(Application Programming Interface),它定义了不同软件系统或组件之间相互通信的规范。API接口允许不同的软件系统之间进行数据交换和互操作,使得它们能够相互调用对方提供的功能或服务。通过API接口,开发人员可以在不了解内部实现细节的情况下,调用其他软件系统或服务的功能,从而实现系统之间的集成和协作。

eval() 函数(php):接受一个字符串参数 $code,其中包含要执行的 PHP 代码。它会将字符串中的代码当作 PHP 代码来执行,并返回执行结果。

system()函数用于执行外部命令,并返回执行结果。

string system ( string $command [int &$return_var ] )

其中,$command是要执行的外部命令,$return_var是一个可选参数,用于存储外部命令的返回值。

当调用system()函数时,PHP会执行指定的外部命令,并将输出直接发送到标准输出。同时,如果提供了$return_var参数,它会存储外部命令的返回值。

需要注意的是,system()函数会直接输出外部命令的结果,因此在一些情况下可能不太适用。如果需要获取外部命令的输出而不直接输出到页面上,可以考虑使用exec()函数。

常见命令:ls(执行ls命令列出目录内容),pwd(显示当前用户的用户名)

演示

墨者学院靶场题(命令注入执行分析,黑盒通过应用功能分析):

首先确定操作系统,看一下网络数据包

通过ubuntu确定应该是linux操作系统(有利于后续命令执行)

补充知识:

常见的基于 Linux 内核构建的操作系统有:

1. Ubuntu:一个流行的桌面和服务器操作系统,提供了友好的用户界面和强大的软件管理工具。
2. Debian:一个稳定、安全的操作系统,被广泛用于服务器和嵌入式设备。
3. CentOS:一个专注于企业级应用的操作系统,提供了长期支持和稳定性。
4. Fedora:一个面向开发者和技术爱好者的操作系统,提供了最新的软件和技术。
5. Arch Linux:一个面向有经验的用户的操作系统,提供了高度定制和灵活性。
6. openSUSE:一个多用途的操作系统,适用于桌面、服务器和嵌入式设备。
7. Red Hat Enterprise Linux (RHEL):一个专业的企业级操作系统,提供了高级的支持和安全功能。

这些操作系统都是基于 Linux 内核开发的,各自有着不同的特点和适用场景。

首先我们看到了页面,有ping操作,因此我们先猜测此处有命令执行,我们先输入一个地址看一下

发现返回了地址信息,因为有回显我们可以通过执行命令ls,看一下其目录

结果发现命令格式有误,应该是存在地址校验。

那我们试一下在地址后面再加上一条命令尝试绕过

还是格式不正确,但是有弹窗。

我们可以联想到它应该是在前端进行了校验

于是我们检查前端代码

果然在前端进行了校验,我们将onsubmit后边改为return true 进行前端绕过,再尝试一下

绕过成功,发现文件名,进行读取

补充知识:cat命令通常用于Unix和类Unix系统中用来查看文件的内容。

在ping命令中使用cat命令时,通常会使用重定向操作符"<",其作用是将cat命令的输出作为ping命令的输入。这样可以将cat命令输出的内容传递给ping命令进行处理。

最后读取到了flag

墨者学院靶场题(PHP代码分析溯源,白盒代码审计):

首先看题,发现把代码展示了出来,并告知了key在根目录

因为代码进行了加密和解密,我们先解密出源代码

(直接复制在php编译器上输出一下)

发现解密后的代码时这样的

因为其接受request请求所以我们利用url发送一下请求(本来eval是代码执行函数,但是后边加了反引号 ` ` ,进行了命令执行)

补充信息:在Linux中,反引号 ` ` 和 $() 都可以用来执行命令并将其结果赋值给变量。这两种方法的作用是相同的,但推荐使用 $(),因为它更易读且更容易嵌套。

找到了存放key的目录,进行访问

得到key的值

标签:web,操作系统,命令,外部命令,代码,漏洞,代码执行,RCE,执行
From: https://blog.csdn.net/2301_79688134/article/details/136634581

相关文章

  • .NetCore Web Api 项目Docker部署
    .NetCoreWebApi项目Docker部署.Net5之后版本编写的项目代码编译后均可以分别部署在Windows、Linux系统下。只需要安装对应的SDK或者运行时。这篇文章主要介绍.Net项目编译之后通过docker镜像部署WebApi项目了解dotnet命令dotnet命令详细说明链接。不得不说微软的文档......
  • 边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 整体介绍(一)
    边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南前言硬件设备及技术选型硬件设备选型系统技术选型流媒体服务器选型项目整体结构智能监控系统功能视频纵览预警信息模型管理设备管理摄像头管理前言欢迎来到我们的专栏《边缘计算+WEB端应用融合:AI行为识别智能......
  • webpack面试1
    一、谈谈对webpack的认识webpack是一个模块打包工具,它能够很好地管理与打包Web开发中所用到的HTML、JS、CSS以及各种静态文件(图片、字体等),让开发过程更加高效。对于不同类型的资源,webpack有对应的模块加载器(loader)来处理。webpack会分析模块间的依赖关系,最后输出优化且合并后的......
  • XSS漏洞
    漏洞介绍XSS攻击全称跨站脚本攻击,是为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到web网站里面,供给其它用户访问,当用户访问到有恶意代码的网页就会产生xss攻......
  • PHP-CGI远程1代码执行漏洞(CVE-2012-1823)
    影响版本php<5.3.12orphp<5.4.2测试环境cdphp/cve-2012-1823docker-composeup-d访问http://your-ip:8080/index.php?-s即爆出源码,说明漏洞存在。发送如下数据包,可见Body中的代码已被执行:POST/index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a......
  • Web Audio API 第1章 基础篇
    WebAudioAPI第1章基础篇我查了一下WebAudioAPI蝙蝠书居然在2013年就出版了我又看了一下我的“豆瓣读书”频道内,这本书加入到“在读”标签是在2021年了一直没有坚持看这本书的原因有两点,一是本书是英文版的,不像中文看的那么流畅二是在前端开发业务中一直没有遇......
  • 修改zabbix的web平台名称
    1、在公司使用zabbix时,想着把zabbix的web页面名称修改成自己喜好的,但是这个是无法直接在前端页面修改,需要修改zabbix.conf.php配置文件 2、通过find命令查找zabbix.conf.php文件,结果显示有两个文件路径,其实两个配置文件都一样,只是一个是软链接文件 3、修改zabbix.c......
  • 【你也能从零基础学会网站开发】Web建站之javascript入门篇 Array数组
    ......
  • 【你也能从零基础学会网站开发】Web建站之javascript入门篇 History对象与Location对
    ......
  • 【你也能从零基础学会网站开发】Web建站之javascript入门篇 认识JavaScript中的Cookie
    ......