Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2023-01012
- Vendor: 詮盈法律事務所
- Title: 詮盈法律事務所 SQL Injection to PHP Code Execution
- Introduction: 可上傳phpinfo並執行,觀察其版本並找出可利用的漏洞
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2023/12/12 01:55:16 : 新提交 (由 shnien 更新此狀態)
- 2023/12/12 22:37:07 : 新提交 (由 shnien 更新此狀態)
- 2023/12/15 10:56:17 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/12/26 11:47:38 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/12/26 11:47:38 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/02/25 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2023-01012
- 通報者:s52492001 (shnien)
- 風險:嚴重
- 類型:程式碼執行 (Code Execution)
參考資料
相關網址
敘述
嘗試以sqlmap輔助測試,發現get參數「no」存在SQL Injection漏洞。
可從資料庫中找到後台管理權限帳密,是弱密碼,且為明碼儲存。
透過目錄掃描工具,找到後台網址。
輸入前面在資料庫中找到的帳密,成功登入。
在「專業團隊管理」中,點選「新增」。
再新增頁面中,可上傳照片。
在此上傳phpoinfo函數,完整內容如下:
<?php
phpinfo();
由於有限制檔案類型,因此將副檔名取為pdf。
上傳檔案時,擷取封包,並將副檔名改為php。
成功上傳後讀取檔案,可成功執行phpinfo,並獲得PHP版本等詳細資訊。
另外還有測試上傳過reverse shell,但看來伺服器有防堵惡意碼的機制,無法上傳,因此未發現RCE之方法。
此次測試上傳之檔案皆已刪除。
修補建議
1. 網頁程式碼改用參數化查詢方式撰寫,是最根本杜絕SQL Injection的方式。
若修改程式碼太困難,也至少要過濾特殊符號,如「'」、「&」、「=」等等。
再不然就是掛一個WAF來阻擋惡意攻擊。
2. 密碼千萬不要以明文儲存,最好以至少是sha128或更強等級的hash或加密方式儲存。
3. 密碼也千萬不要用弱密碼。
以這次案例,密碼只有三碼,而且只有數字,這種強度的密碼用暴力破解工具幾乎是一瞬間就能解開。
建議密碼至少要有八碼以上,包含大、小寫英文與數字,或是更強的複雜度。
4. 上傳檔案功能雖然有限制檔案類型,但看起來只有在前端檢驗,容易繞過。
建議改到後端進行檢驗。
5. 本次測試雖未能RCE,但不確定在真實世界是否有能力足夠強的攻擊者能夠拿下貴單位的主機。
且以上弱點皆已達到高風險,甚至嚴重風險等級。
再加上貴單位為法律事務所,網站上可能有不少敏感資訊,因此建議盡速修補。