远程命令执行漏洞的概念

 远程命令执行漏洞,指用户通过浏览器提交执行操作命令,
由于服务器端,没有针对执行函数做过滤,就执行了恶意命令

远程代码执行漏洞概念

 代码执行漏洞也叫代码注入漏洞,指用户通过浏览器
提交执行恶意脚本代码,执行恶意构造的脚本代码

两者区别

        命令执行: 一般指操作系统命令远程代码执行: 一般指的是脚本代码

造成的原因

   造成的原因是Web服务器对用户输入命令安全检测不足,
导致恶意(操作系统命令 或 脚本代码)被执行。

命令执行漏洞

命令执行漏洞的分类

 代码层:一些商业应用需要执行命令,商业应用的一些核心代码可能封装在
二进制文件中,在web应用中通过system函数来调用;第三方组件层:很典型的就是wordpress中,可以选择使用imageMagick这个
常用的图片处理组件,对用户上传的图片进行处理,造成命令执行,
另外java中的命令执行漏洞(struts2/Elasticsearch等)

命令执行漏洞的危害

任意执行系统命令,恶意木马被种植,挂马,钓鱼,敏感信息泄露.....

示例1


提交 http://localhost/cmd.php?ip=192.168.199.150|ipconfig

提交以后 | 命令管道符会将 ping 192.168.199.150|ipconfig
命令变成了 shell_exec('ping '.|ipconfig)

如何防止命令执行漏洞

修复方法有很多方式,例如 1、过滤特殊字符或替换字符 2、严格验证输入的类型长度

方案2 修复代码 :

执行效果

远程代码执行漏洞

复现示例 Tomcat任意文件上传漏洞CVE-2017-12615

介绍

 ApacheTomcat服务组件中开启了http的Put方法所造成的攻击者可以利用该方法任意
上传jsp木马所造成的远程代码执行漏洞。知默认情况下是禁止http请求中的上传(PUT)和删除(DELETE)方法的。

漏洞影响

上传包含任意代码的文件,并被服务器执行。

影响平台

Windows/Linux

漏洞影响版本

Apache Tomcat <= 7.0.81 | Apache Tomcat <= 8.5.20 | Apache Tomcat <= 9.0.0.M26

复现步骤一 准备环境

准备环境:
1、 java环境
Java™ SE Runtime Environment (build 1.8.0_20-b26)

2、apache-tomcat-7.0.70

3、配置 环境变量 CATALINA_HOME

4、修改tomcat 目录 conf/web.xml

5、 开启HTTP PUT

复现步骤二 下载复现环境 (在文章最下面)

复现步骤三 启动tomcat 服务

复现步骤四 利用PUT方法上传木马

利用工具目录如下

cmd 进入利用脚本目录

上传可执行木马程序

java -jar CVE-2017-12615-Exploit.jar
http://127.0.0.1:8080 /shell.jsp D:\aqcode\code\CVE-2017-12615-master-利用脚本\cmd.jsp


Existence 代表上传成功

工具源码分析



代码标记1 :
将 D:\aqcode\code\CVE-2017-12615-master-利用脚本\cmd.jsp 文件内容读取出来

cmd.jsp 内容如下

代码标记2 :
将内容写入到 http://127.0.0.1:8080/shell.jsp/ 文件当中

代码标记3 :

当后缀名为 .jsp 和 .jspx 的时候,是通过JspServlet处理请求的:

而其他的静态文件是通过org.apache.catalina.servlets.DefaultServletDefaultServlet处理的:

可以得知,“/shell.jsp/”(末尾有反斜杠)并不能匹配到 JspServlet,而是会交由DefaultServlet去处理。当处理 PUT 请求时:



会调用resources.bind:


dirContext 为FileDirContext:

调用 rebind创建文件:


http://127.0.0.1:8080/shell.jsp/ ,多了一个反斜杠,
这个关键,由于在org.apache.catalina.servlets.DefaultServlet 代 码会去掉最后的 / 的特性,故 put /shell.jsp/ 会创建成功
(同时绕过 JspServlet 处理类)

复现步骤五 执行木马程序

http://127.0.0.1:8080/shell.jsp

修复方案

1、配置readonly和VirtualDirContext值为True或注释参数,禁止使用PUT方法并重启tomcat
注意:如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。

2、根据官方补丁升级最新版本

漏洞总结

 该漏洞利用的前提条件需要手动开启readOnly功能,以支持上传操作,默认配置的情况
下是无法成功利用漏洞,从实际测试来看,漏洞危害性并没有那么高。但是如果用户一旦,启用了readOnly功能,黑客可利用漏洞成功入侵。

复现环境及代码

tomcat7源码
https://pan.baidu.com/s/1rcbxfRyRFujkmHJKCr9voQ

利用工具
https://pan.baidu.com/s/10RJCGHUaU_Ifh1p2XCUfTw

远程命令执行漏洞与远程代码执行漏洞33333相关推荐

  1. Alpine Linux:从漏洞发现到代码执行

    本文讲的是Alpine Linux:从漏洞发现到代码执行, 我最近在Alpine Linux的软件包管理器中发现了两个关键的漏洞,分别是CVE-2017-9669和CVE-2017-9671,如果你正 ...

  2. 【漏洞复现】XMind2020及2021beta版本存在xss漏洞导致任意代码执行

    简介 XMind是一种功能齐全的思维导图和头脑风暴工具,旨在产生想法,激发创造力,并在工作和生活中带来效率.数以百万计的用户们喜欢它 漏洞(xss) XMind2020及2021beta版本存在xss ...

  3. java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令

    这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...

  4. XXE漏洞检测及代码执行过程

    这两天看了xxe漏洞,写一下自己的理解,xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍历等.首先存在漏洞的web服务一定是存 ...

  5. 影响超过四百万网络摄像头:Zoom客户端存在0 day漏洞可能导致代码执行

    CVE编号 CVE-2019-13449:Zoom客户端拒绝服务漏洞(已在4.4.2版本客户端中修复) CVE-2019-13450:网络摄像头信息泄露漏洞(目前暂未发布补丁,计划在7月10日发布) ...

  6. python如何执行代码漏洞_任意代码执行漏洞

    背景介绍 当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞.狭义的代码注入通常指将可执行代码注入到当前页面中,如php的ev ...

  7. DedeCMS历史漏洞复现之代码执行漏洞

    本文介绍的漏洞虽然不是最新漏洞,但意在让初学者了解漏洞复现的基本流程. 首先了解一下什么是CMS.CMS是Content Management System的缩写,意为"内容管理系统&quo ...

  8. 页面 动态显示cmd执行结果_把代码执行演示嵌在你的PPT中

    "Talk is cheap, show me your code!" 当一个程序员在做技术分享的时候, 代码演示经常是不可或缺的一个环节.然而在你的演示PPT和代码运行之间切换是 ...

  9. [vulfocus漏洞复现]thinkcmf 代码执行漏洞复现 (CVE-2019-7580)phpinfo();ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPH

    前言 ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPHP开发. thinkcmf5.0.19 这个版本后台提供路由自定义,其中路由的别名对单引号缺少过滤,导致引发 ...

  10. 使用定时器判断确保某个标签有值才执行方法, 控制js代码执行先后顺序

    使用定时器判断确保某个标签有值才执行方法: var wait = setInterval(function(){ var diqu = $("#diqu").val();//确保有 ...

最新文章

  1. silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时...
  2. dis的前缀单词有哪些_玩转英语词汇--词汇积累策略之前缀dis
  3. 开源 | IBM、哈佛共同研发:Seq2Seq模型可视化工具
  4. 装管家婆系统要开启那些服务器,管家婆服务器维护注意的一些事项?
  5. Python模块学习——optparse
  6. S2系统相关-uptime命令总结(S代表系统相关)
  7. python myqr 二维码生成
  8. 痛苦的老师开心的我们
  9. 实验二matlab数值,实验二MATLAB数值计算
  10. Acwing第 22 场周赛【未完结】
  11. Kubernetes 弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
  12. 百度AI实力响应“新基建”号召 Q1财报智能交通成绩亮眼
  13. struts内的action方法自动提交
  14. android 监听媒体库,一个蛋疼的功能,监听android系统媒体库的变动
  15. MyEclipse could not redeploy(不能重新部署)的解决办法
  16. c语言入门程序下载,c语言入门自学软件下载
  17. java中this关键字的作用
  18. 通过路由远程计算机重启,如何通过三种方式重启路由器
  19. openslide安装问题
  20. 3d max 场景转换对话框

热门文章

  1. Opencv Surf特征实现图像无缝拼接生成全景图像(三)
  2. jquery 设置按钮变成灰色和不可用
  3. 大龄焦虑?如何看待程序员35岁职业危机?
  4. jQuery 图片查看插件 Magnify 开发简介(仿 Windows 照片查看器)
  5. 游戏中排行榜代码实现
  6. C语言每日一题——查找数字
  7. 剖析cmwap和cmnet接入点区别和应用
  8. 聊聊公钥私钥的那点事儿
  9. python 过采样 权重实现_不平衡数据集的处理 - osc_sqq5osi1的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. 【计算机考研】从N非本科到考研上岸一线211的心路历程