远程命令执行漏洞与远程代码执行漏洞33333
远程命令执行漏洞的概念
远程命令执行漏洞,指用户通过浏览器提交执行操作命令,
由于服务器端,没有针对执行函数做过滤,就执行了恶意命令
远程代码执行漏洞概念
代码执行漏洞也叫代码注入漏洞,指用户通过浏览器
提交执行恶意脚本代码,执行恶意构造的脚本代码
两者区别
命令执行: 一般指操作系统命令远程代码执行: 一般指的是脚本代码
造成的原因
造成的原因是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相关推荐
- Alpine Linux:从漏洞发现到代码执行
本文讲的是Alpine Linux:从漏洞发现到代码执行, 我最近在Alpine Linux的软件包管理器中发现了两个关键的漏洞,分别是CVE-2017-9669和CVE-2017-9671,如果你正 ...
- 【漏洞复现】XMind2020及2021beta版本存在xss漏洞导致任意代码执行
简介 XMind是一种功能齐全的思维导图和头脑风暴工具,旨在产生想法,激发创造力,并在工作和生活中带来效率.数以百万计的用户们喜欢它 漏洞(xss) XMind2020及2021beta版本存在xss ...
- java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令
这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...
- XXE漏洞检测及代码执行过程
这两天看了xxe漏洞,写一下自己的理解,xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍历等.首先存在漏洞的web服务一定是存 ...
- 影响超过四百万网络摄像头:Zoom客户端存在0 day漏洞可能导致代码执行
CVE编号 CVE-2019-13449:Zoom客户端拒绝服务漏洞(已在4.4.2版本客户端中修复) CVE-2019-13450:网络摄像头信息泄露漏洞(目前暂未发布补丁,计划在7月10日发布) ...
- python如何执行代码漏洞_任意代码执行漏洞
背景介绍 当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞.狭义的代码注入通常指将可执行代码注入到当前页面中,如php的ev ...
- DedeCMS历史漏洞复现之代码执行漏洞
本文介绍的漏洞虽然不是最新漏洞,但意在让初学者了解漏洞复现的基本流程. 首先了解一下什么是CMS.CMS是Content Management System的缩写,意为"内容管理系统&quo ...
- 页面 动态显示cmd执行结果_把代码执行演示嵌在你的PPT中
"Talk is cheap, show me your code!" 当一个程序员在做技术分享的时候, 代码演示经常是不可或缺的一个环节.然而在你的演示PPT和代码运行之间切换是 ...
- [vulfocus漏洞复现]thinkcmf 代码执行漏洞复现 (CVE-2019-7580)phpinfo();ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPH
前言 ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPHP开发. thinkcmf5.0.19 这个版本后台提供路由自定义,其中路由的别名对单引号缺少过滤,导致引发 ...
- 使用定时器判断确保某个标签有值才执行方法, 控制js代码执行先后顺序
使用定时器判断确保某个标签有值才执行方法: var wait = setInterval(function(){ var diqu = $("#diqu").val();//确保有 ...
最新文章
- silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时...
- dis的前缀单词有哪些_玩转英语词汇--词汇积累策略之前缀dis
- 开源 | IBM、哈佛共同研发:Seq2Seq模型可视化工具
- 装管家婆系统要开启那些服务器,管家婆服务器维护注意的一些事项?
- Python模块学习——optparse
- S2系统相关-uptime命令总结(S代表系统相关)
- python myqr 二维码生成
- 痛苦的老师开心的我们
- 实验二matlab数值,实验二MATLAB数值计算
- Acwing第 22 场周赛【未完结】
- Kubernetes 弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
- 百度AI实力响应“新基建”号召 Q1财报智能交通成绩亮眼
- struts内的action方法自动提交
- android 监听媒体库,一个蛋疼的功能,监听android系统媒体库的变动
- MyEclipse could not redeploy(不能重新部署)的解决办法
- c语言入门程序下载,c语言入门自学软件下载
- java中this关键字的作用
- 通过路由远程计算机重启,如何通过三种方式重启路由器
- openslide安装问题
- 3d max 场景转换对话框
热门文章
- Opencv Surf特征实现图像无缝拼接生成全景图像(三)
- jquery 设置按钮变成灰色和不可用
- 大龄焦虑?如何看待程序员35岁职业危机?
- jQuery 图片查看插件 Magnify 开发简介(仿 Windows 照片查看器)
- 游戏中排行榜代码实现
- C语言每日一题——查找数字
- 剖析cmwap和cmnet接入点区别和应用
- 聊聊公钥私钥的那点事儿
- python 过采样 权重实现_不平衡数据集的处理 - osc_sqq5osi1的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【计算机考研】从N非本科到考研上岸一线211的心路历程