找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4071

积分

0

好友

530

主题
发表于 1 小时前 | 查看: 4| 回复: 0

二. 大概流程

  1. 入口获取:通过已获得的统一身份认证账号密码登录系统,进入目标子系统。
  2. 存储型XSS漏洞挖掘与利用
    • 发现附件上传功能,前端仅做了JS校验;
    • 通过 Burp Suite 改包绕过前端限制,实现任意文件上传;
    • 上传 HTML 文件(如 XSS payload)但无法解析 jsp;
    • 通过分析前端 JS 代码发现图标资源路径,拼接出上传文件的访问 URL,成功触发 XSS。
  3. 未授权访问漏洞(文件删除与信息泄露)
    • 使用工具(如 findsomething、LoveJS)提取 JS 中的接口,并配合手工审计;
    • 发现 /detail?id= 接口存在未授权遍历,可获取敏感文件信息;
    • 发现 /delete?id= 接口存在未授权删除风险(未实际测试);
    • 发现工单查询接口未授权泄露用户学号、姓名、手机号等敏感信息。
  4. 未授权访问漏洞(任意用户登录)
    • 通过泄露的手机号,调用 /getUserByPhone?phone= 接口未授权获取用户密码(明文或可逆加密);
    • 结合泄露的学号、手机号及密码,实现任意用户登录。
  5. JS逆向获取超管权限
    • 发现子系统独立登录口(非 CAS 集成),但统一账号无法直接登录;
    • 分析登录请求中的加密参数,通过 JS 逆向获取加密逻辑;
    • 使用 Burp 插件(如 cloudx)实现自动化加密,对账号密码进行爆破;
    • 成功爆破出管理员账号密码,登录后台并发现多处 XSS 漏洞。

三. 正文

之前的证书站好久没发货了,所以想挖点其他的证书,顺便上上 rank,于是有了这篇文章。

拥有某大学的统一身份认证权限(账号密码)后,进入门户发现系统众多,逐一测试。最终,在一个子系统中发现了漏洞链条,这个渗透过程值得在云栈社区与各位安全爱好者分享探讨。

存储型 XSS

子系统下存在一个附件上传点。

文件上传界面截图

前端 JS 做了文件类型校验,上传 PNG 后使用 Burp Suite 改包,发现存在任意文件上传漏洞。由于该系统基于若依框架二次开发,上传的 Webshell 无法解析,因此转为利用 XSS。

POST /xxx/uploadImg HTTP/1.1
Host: xx.xx.edu.cn
Cookie:
Content-Length: 211
Sec-Ch-Ua-Platform: "Windows"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Sec-Ch-Ua: "Not;A=Brand";v="99", "Google Chrome";v="139", "Chromium";v="139"
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary1NKotycTLlciokiM
Sec-Ch-Ua-Mobile: ?0
Accept: */*
Origin:
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer:
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Priority: u=1, i
Connection: keep-alive

------WebKitFormBoundary1NKotycTLlciokiM
Content-Disposition: form-data; name="file"; filename="hack2.html"
Content-Type: image/html

<script>alert(1)</script>
------WebKitFormBoundary1NKotycTLlciokiM--

HTTP文件上传请求与成功响应包截图

文件虽然上传成功,但响应未返回具体访问路径。尝试拼接多个常见路径均无效。此时需要从前端静态资源入手寻找线索。幸运的是,在审计 JS 代码时发现了一个图标资源的引用路径:

前端JS代码中发现的图标路径信息

最终推导出文件下载地址的基本格式:

https://xxx.xxx.edu.cn/xxxx/xxx/24102xxxx.svg

将文件名替换为上传的 HTML 文件后,成功触发 XSS 弹窗:

https://xxx.xxx.edu.cn/xxxx/xxx/250821220651263926.html

XSS弹窗成功触发截图

未授权访问 1 (文件信息泄露)

初步信息收集使用了 findsomethingLoveJS V1.2 等工具提取 JS 接口。

findsomething工具界面截图

LoveJS工具界面截图

用 Burp Suite 对提取到的 GET/POST 接口进行批量测试,未发现明显信息泄露。于是转向手动审计 JS 代码,发现了两个关键接口:

前端JS代码中发现的delete和detail接口

/xxx/xxx/delete?id=    # 删除接口
/xxx/xxx/detail?id=    # 详情接口

使用 Burp Intruder 对 detail 接口的 id 参数进行遍历:

对detail接口进行ID遍历的Burp请求截图

成功遍历出系统内的文件信息,证实该接口存在未授权访问漏洞:

Burp Intruder遍历detail接口的结果,显示文件信息

同理,delete 接口极有可能存在同样的未授权删除风险,鉴于其敏感性,未进行实际测试。

未授权访问 2 (任意用户登录)

继续审计 JS,发现大量接口使用 ?id 参数。重点关注后,发现一个可未授权获取他人提交工单的接口:

未授权访问工单详情接口的请求与响应

Burp Intruder批量遍历工单接口泄露敏感信息

该接口会返回工单提交者的学号、姓名、手机号等敏感信息。

仅泄露信息危害有限,但结合之前发现的多个未授权接口,可以推断系统整体权限控制存在缺陷。既然已获得用户的学号 (xh) 和手机号 (phone),便尝试搜索相关参数的接口。最终发现一个高危接口:

/xxx/xxxxx/getUserByPhone?phone=

使用上面泄露的手机号访问此接口:

通过getUserByPhone接口未授权获取用户密码的响应截图

成功获取了对应用户的密码。至此,结合泄露的学号、手机号和密码,即可实现任意用户登录。

JS 逆向获取超管权限

最初是通过 CAS 单点登录进入该系统。退出后发现其存在独立的登录入口,未与 CAS 集成。但统一身份认证的账号在此无法登录,提示账号不存在。

https://xxx.xxx.edu.cn/login

推测可能存在弱口令或默认账号。抓取登录包发现请求参数被加密:

登录请求包,显示加密的str参数

虽然之前的漏洞已足够换取证书,但出于学习目的,决定对加密逻辑进行 JS 逆向分析。

前端JS加密逻辑代码截图,显示AES-CBC加密

分析确认加密方式为 AES-CBC,密钥(key)为 1478523,偏移量(iv)为 QAZXSWED。使用在线工具验证加解密逻辑无误:

在线AES加解密工具验证截图

接下来,在 Burp Suite 中配置 cloudx 插件,自动化处理登录请求的加密过程:

Burp Suite插件cloudx中配置AES加密规则

配置解密规则成功获取明文账号密码

cloudx插件中已配置的AES加解密规则列表

配置好加解密规则后,将请求发送到 Intruder 模块进行账号密码爆破:

爆破成功,获取登录token的响应截图

成功爆破出管理员账号密码,登录系统后台:

登录成功后系统后台主页面截图

后台用户管理菜单截图

在后台中也发现了多处新的 XSS 漏洞。

四. 总结

最终成功用挖掘的漏洞兑换了证书:

漏洞证书兑换记录截图

本次渗透测试整体难度不高,需要一些耐心进行 JS 接口审计,也带有一点运气成分。攻击路径从存储型 XSS 开始,串联起未授权文件信息泄露、未授权敏感信息泄露,最终通过 JS 逆向突破独立登录口,获取系统最高权限,形成了一个完整的链式攻击。这种对后端 & 架构中权限校验缺失的深入利用,是提升渗透深度的关键。




上一篇:Nvidia发布Vera Rubin七芯片平台,瞄准Agentic AI开启代际飞跃
下一篇:AI SOC 定义深度解析:6类技术路线与2026年理性选型指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-19 10:24 , Processed in 0.474703 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表