
======================================================================
     兽屿少年 (xz.hrznx.com.cn) 安全漏洞审计报告
     审计时间: 2026-05-22
     目标: xz.hrznx.com.cn / api.hrznx.com.cn / ht.hrznx.com.cn
======================================================================

【目标信息】
  应用名称: 兽屿少年
  应用框架: uni-app (H5)
  后端系统: StarPro CMS
  Web服务器: nginx
  CDN: 小祈云CDN
  域名:
    - xz.hrznx.com.cn (主站/H5应用)
    - api.hrznx.com.cn (API接口)
    - ht.hrznx.com.cn (StarPro后台管理)

======================================================================
                     🔴 严重漏洞 (Critical)
======================================================================

【漏洞1】API未授权访问 - 用户列表全部泄露
  端点: POST /SProUsers/userList
  风险: 无需登录即可获取全部195个用户的完整信息，包括:
    - 真实IP地址 (如 153.36.134.30, 113.124.186.28)
    - 精确地理位置 (省份/城市/运营商)
    - QQ号码 (如 321649091, 1590330161, 3456373839)
    - 手机号码 (如 15308579790)
    - 用户名、昵称、头像、VIP状态、经验值
    - 用户组 (administrator/editor/contributor)
    - 邀请码、ClientID、个人简介
  利用方式: curl -X POST https://api.hrznx.com.cn/SProUsers/userList -d '{}'

【漏洞2】API未授权访问 - 帖子列表全部泄露
  端点: POST /SProForum/postList
  风险: 无需登录即可获取全部178个帖子，每个帖子内嵌发布者的完整用户JSON
  利用方式: curl -X POST https://api.hrznx.com.cn/SProForum/postList -d '{}'

【漏洞3】API未授权访问 - 商城列表全部泄露
  端点: POST /SProShop/shopList
  风险: 无需登录即可获取全部29个商品信息，含卖家完整用户数据
  利用方式: curl -X POST https://api.hrznx.com.cn/SProShop/shopList -d '{}'

【漏洞4】CORS跨域配置严重错误
  端点: 所有API端点
  风险: Access-Control-Allow-Origin: * 与 Access-Control-Allow-Credentials: true 同时存在
  影响: 任意网站可通过AJAX请求窃取API数据，结合漏洞1可大规模收集用户隐私
  响应头: 
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE

======================================================================
                     🟠 高危漏洞 (High)
======================================================================

【漏洞5】开放重定向 (Open Redirect)
  URL: https://xz.hrznx.com.cn/h5/static/pcframe.html?url=<任意URL>
  风险: url参数未经域名白名单校验，可重定向到钓鱼网站
  代码位置: pcframe.html 中的 exitToNormal() 函数直接使用用户输入
  利用方式: https://xz.hrznx.com.cn/h5/static/pcframe.html?url=https://evil.com

【漏洞6】前端JS泄露第三方API密钥
  文件: /h5/static/js/index.79d45ff2.js
  泄露密钥: 6a4dbb034204cfe426a452f8bb3149a6
  目标API: https://hjapi.hjykj.top/api/meiri/api.php
  验证结果: 密钥有效，返回每日一句数据
  风险: 可被外部滥用消耗配额

【漏洞7】Pexels API代理未鉴权
  端点: POST /SProContents/ImagePexels
  风险: 无需登录即可使用服务器的Pexels API密钥搜索图片
  影响: 可能消耗服务器的Pexels API调用配额
  total_results: 63356 (可访问大量图片资源)

【漏洞8】SMS短信接口无频率限制
  端点: POST /SProUsers/sendSMS
  风险: 连续5次请求均返回200，无任何频率限制
  影响: 若短信配置修复，可被用于短信轰炸攻击

【漏洞9】AI/GPT机器人列表公开
  端点: POST /SProgpt/gptList
  风险: 无需登录即可获取AI聊天机器人配置
  数据: 3个GPT机器人 (AI绘画、AI画师、小墨)
  信息: prompt提示词、价格、VIP限制等

======================================================================
                     🟡 中危漏洞 (Medium)
======================================================================

【漏洞10】StarPro后台管理系统暴露
  URL: https://ht.hrznx.com.cn/admin/
  登录接口: POST /admin/loginPost.php
  风险:
    - 后台登录页面直接暴露在公网
    - 客户端JS校验阻止特殊字符，但可被curl绕过
    - 验证码机制可被重放攻击(未发现验证码失效机制)
    - 用户名密码字段参数: adminName, pw, captcha
  利用尝试:
    - 需正确验证码才能测试SQL注入 (已尝试绕过，验证码校验严格)
    - 用户名和密码字段禁止特殊字符(仅客户端限制)

【漏洞11】内部错误信息泄露
  端点: POST /SProUsers/getScan
  错误: 500 Internal Server Error - "non null key required"
  风险: 暴露后端Java技术栈的校验逻辑，可用于信息收集

【漏洞12】注册配置信息泄露
  端点: POST /SProUsers/regConfig
  返回: {"isPhone":1,"isEmail":1,"isInvite":0}
  风险: 暴露系统注册策略

【漏洞13】CDN请求ID泄露
  错误页面中的请求ID可被用于追踪和推断内部架构
  示例: 请求ID: 17794580025691301000001

======================================================================
                     🔵 信息收集 (Info)
======================================================================

【信息1】应用架构
  - 前端: uni-app H5 + Vue.js
  - 后端: StarPro CMS (PHP + Java混合)
  - API风格: REST-like POST (Service/Function模式)
  - 认证方式: Token-based (部分接口未启用)

【信息2】API端点完整列表
  SProUsers: userLogin, phoneLogin, userRegister, userList, userInfo,
             userEdit, userDelete, userRecharge, sendSMS, SendCode,
             RegSendCode, apiLogin, apiBind, getKaptcha, getScan,
             banUser, follow, followList, fanList, userData, signOut,
             userFoget, userPhoneFoget, setClientId, giftVIP, 
             withdrawList, withdrawStatus, selfDelete, selfDeleteList,
             manageUserEdit, invitationList, violationList, regConfig, ...
  SProForum: postList, postInfo, postDelete, postLock, postMark,
             postRecommend, postReview, postTop, postReward, ...
  SProContents: contentsList, contentsInfo, contentsAdd, contentsDelete,
                ImagePexels, allData, foreverblog, ...
  SProShop: shopList, shopInfo, shopTypeList, buyShop, buyVIP, ...
  SProChat: myChat, sendMsg, msgList, allChat, createGroup, ...
  SProComments: commentsList, commentsAdd, commentsDelete, ...
  SProAds: adsList, adsInfo, addAds, deleteAds, ...
  SProgpt: gptList, sendMsg, msgList, ...

【信息3】用户组权限分级
  - administrator: 管理员 (UID 2: lyj/兽屿少年)
  - editor: 编辑/审核员 (UID 3: yj/雨季, UID 96: Xuanhan/小狼玄寒awa)
  - contributor: 普通用户

【信息4】第三方服务
  - 腾讯QQ Maps API
  - 高德地图 API
  - Pexels 图片API
  - 云知API (yunzhiapi.cn)
  - 汇杰API (hjapi.hjykj.top) [密钥已泄露]

======================================================================
                     📊 风险评估总结
======================================================================

严重程度分布:
  严重(Critical): 4个 - 用户数据泄露、CORS配置错误
  高危(High):     5个 - 开放重定向、密钥泄露、API配额滥用、SMS无限制
  中危(Medium):   4个 - 后台暴露、错误泄露、配置泄露
  信息(Info):     已收集完整API架构

最紧急修复建议:
  1. 立即为 userList/postList/shopList/gptList 添加Token鉴权
  2. 修复CORS配置，将Access-Control-Allow-Origin改为白名单域名
  3. 从JS中移除硬编码的API密钥，改为服务端代理
  4. 对SMS接口添加频率限制
  5. 为Pexels代理接口添加认证
  6. 修复pcframe.html中的开放重定向(添加域名白名单)
  7. 隐藏后台管理入口或添加IP白名单

【关于SQL注入】
  主API接口 (api.hrznx.com.cn) 参数校验严格，未发现SQL注入。
  后台登录 (ht.hrznx.com.cn/admin/loginPost.php) 有验证码保护，
  且客户端JS禁止特殊字符，未成功利用。建议仍需审计后端PHP代码。
======================================================================
