文章总结: 本文介绍一种基于JS分析的端点枚举渗透技巧。通过正则提取已知API,分析其路径结构与驼峰命名规律,进而构造候选端点列表进行批量FUZZ。作者利用该方法成功挖掘出未授权的全站用户数据泄露接口。建议在测试中从已知接口推导未知接口并生成定制字典探测,以有效扩大攻击面发现隐藏漏洞。 综合评分: 82 文章分类: 渗透测试,WEB安全,实战经验
JS端点枚举 从已知推断未知的渗透技巧
原创
M9 M9
白昼信安
2026年7月15日 15:33 甘肃
在小说阅读器读本章
去阅读
在最近的漏洞挖掘中,AI在一次JS分析中有一个很有意思的操作:通过分析JS找全部接口,然后分析接口路径结构和命名规则,构造可能存在的端点列表FUZZ,挖出了一个未授权全站用户泄露。
第一步:提取JS 和 已知 API 端点
# 方法 1:匹配 .htm 端点(Java 项目常用)
grep -oP '["\x27][^"\x27]*\.htm["\x27]' *.js
# 方法 2:匹配 url 变量
grep -oP 'url\s*[=:]\s*["\x27][^"\x27]+["\x27]' *.js
# 方法 3:匹配 AJAX 请求
grep -oP '\.post\(["\x27][^"\x27]+["\x27]' *.js
# 方法 4:匹配 BASEPATH 拼接
grep -oP 'BASEPATH\s*\+\s*["\x27][^"\x27]+["\x27]' *.js
第二步:分析JS中接口的命名规律
/base/authoriza/user/{操作}.htm ← 用户管理
/base/authoriza/login/{操作}.htm ← 登录相关
/base/msg/tips/{操作}.htm ← 消息通知
/act/activitiMain/{操作}.htm ← 工作流引擎
/pro/comm/proCommunity/{操作}.htm ← 小区管理
/wx/config/{操作}.htm ← 微信配置
规律:模块前缀 + 动词 + 名词本案例使用驼峰式,且动词在前。
第三步:构造候选端点列表
已知端点:
/base/authoriza/user/getCurUser.htm
/base/authoriza/user/sendSms.htm
推测端点:
/base/authoriza/user/queryUser.htm ← 查询用户列表
/base/authoriza/user/addUser.htm ← 添加用户
/base/authoriza/user/updateUser.htm ← 更新用户
/base/authoriza/user/deleteUser.htm ← 删除用户
/base/authoriza/user/resetPassword.htm ← 重置密码
/base/authoriza/user/changeStatus.htm ← 修改状态
............
然后将这些推断存在的接口整理成字典批量即可。 输出:
Endpoint StatusCode Status
-------- ---------- ------
/base/authoriza/user/queryUser.htm 200 ✅ 存在且可访问
/base/authoriza/user/addUser.htm 404 ❌ 不存在
/base/authoriza/user/updateUser.htm 000 ❌ 连接失败
/base/authoriza/user/deleteUser.htm 302 ⚠️ 存在但需认证
/base/authoriza/user/resetPwd.htm 404 ❌ 不存在
/base/authoriza/user/exportUser.htm 404 ❌ 不存在
通过构造的queryUser端点成功获取全站用户数据。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:白昼信安 M9 M9《JS端点枚举 从已知推断未知的渗透技巧》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论