山野悠遊戶外探索團隊存在SQL注入漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2025-00177
  •  發信 Vendor: 山野悠遊企業社
  • Title: 山野悠遊戶外探索團隊存在SQL注入漏洞
  • Introduction: 危害不大,但是被挂暗鏈或者挖礦木馬就麻煩了

處理狀態

目前狀態

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

處理歷程

  • 2025/02/17 18:55:42 : 新提交 (由 萬里 更新此狀態)
  • 2025/02/19 16:26:28 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/03/13 17:15:06 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/03/13 17:15:06 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/03/13 17:15:06 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/04/19 03:00:59 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2025-00177
  • 通報者:jackLI (萬里)
  • 風險:低
  • 類型:資料庫注入攻擊 (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://220.128.239.193/actD6.php?no=3285

敘述

参数特性:在https://220.128.239.193/actD6.php?no=3285这个 URL 中,no参数用于指定特定课程相关信息。从形式上看,它是一个典型的可能引发 SQL 注入漏洞的参数。如果服务器端代码在处理该参数时,将其直接拼接到 SQL 查询语句中,且未对输入进行严格的过滤和验证,就为 “AND 数字型 SQL 注入” 漏洞埋下隐患。
代码推测:假设后端使用 PHP 语言与 MySQL 数据库交互,可能存在类似如下代码:

$no = $_GET['no'];
$sql = "SELECT * FROM courses WHERE no = $no";
$result = mysqli_query($conn, $sql);

在这种情况下,$no参数未经任何处理直接嵌入 SQL 语句,若攻击者对no参数值进行恶意篡改,就有可能改变原 SQL 查询的逻辑,导致 SQL 注入攻击。

驗證漏洞:攻可以构造https://220.128.239.193/actD6.php?no=3285 AND 1=1的 URL。如果应用存在 “AND 数字型 SQL 注入” 漏洞,原本的查询逻辑会被改变。正常情况下,查询条件可能是精确匹配no参数值,但添加AND 1=1后,这个条件永远为真。若页面返回的内容与原页面相同(或者是正常展示内容,没有报错),则初步表明该应用可能存在 SQL 注入漏洞。

获取数据库信息:攻击者还可以构造更复杂的注入语句,例如https://220.128.239.193/actD6.php?no=3285 AND (SELECT COUNT(*) FROM users)>0。通过观察页面的返回情况,若页面有变化(如显示正常、显示错误信息或与原页面不同的异常情况),攻击者就能判断数据库中是否存在名为users的表。以此类推,攻击者可以逐步探测数据库的结构,比如判断其他表名、字段名等信息。

获取敏感数据:一旦攻击者获取了表结构信息,就可以尝试获取敏感数据。假设已知存在users表,且包含username和password字段,攻击者可以构造https://220.128.239.193/actD6.php?no=3285 AND 1=2 UNION SELECT username,password FROM users。若应用存在漏洞且权限足够,攻击者就可能获取users表中的用户名和密码信息。

修補建議

修复建议:
输入验证:在服务器端对no参数进行严格的输入验证。只允许输入合法的数字,可使用正则表达式等方式进行验证。例如在 PHP 中,可以使用preg_match('/^[0 - 9]+$/', $_GET['no'])来确保输入是纯数字。
参数化查询:避免将用户输入直接拼接到 SQL 语句中,采用参数化查询的方式。以 PHP 和 MySQL 为例,使用PDO或mysqli的预处理语句功能。

PS:本來不想提交的,但是本著好事做到底的原則,還是提交了吧
總體來説危害不大,因爲數據庫我大概看了一下沒有很多敏感個資信息。但是一旦被植入挖礦木馬或者博彩暗鏈,網站就報廢了。

擷圖

留言討論

聯絡組織

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