Oscshop 系统 默认口令漏洞复现
Oscshop 系统 默认口令漏洞复现
0x00 漏洞概述
oscshop 是基于 ThinkPHP 框架开发的 B2C 开源商城系统,支持支付宝、微信支付等电商能力,其项目代码在 gitee 上公开托管。本次分析的对象是该系统后台卖家管理入口的登录认证:系统内置账号 admin,出厂初始口令为 admin888,安装部署流程未强制用户在首次登录时修改该口令。结果就是,大量部署实例上线后长期保留着「admin/admin888」这组默认凭据,任何访问者都可以在后台登录页直接输入并进入管理界面,查看、编辑商城系统的商品、订单等核心数据。风险评分为 7.5(高危),属于典型的默认口令类缺陷;该问题无公开 CVE/CNVD 编号,公开渠道以安全社区通告形式记录(nosec 通告页 detail/6035)。这类漏洞没有复杂的利用技巧,但危害直接:一旦登录成功,攻击者等于拿到了商城的管理员权限。
0x01 影响范围
官方未公布受影响版本清单,公开漏洞库中也无对应条目,且无 CVE/CNVD 编号。从成因看,凡安装后未修改初始口令、且后台登录入口对外可达的 oscshop 部署均受影响。资产识别方面,该系统后台登录页 URL 具有固定特征:路径形如 /seller.php?s=/Public/login,页面正文引用该入口地址。在测绘结果中命中该路径特征的站点,均应纳入口令排查范围。由于 oscshop2 基于 ThinkPHP5 开发,同时存在 oscshop 与 oscshop2 两个代际的开源版本,两代系统的部署都可能保留默认凭据,排查时不应只盯单一版本号。
0x02 漏洞分析
默认口令漏洞的本质是「认证机制完整、初始凭据公开」——系统本身有登录校验,但校验用的那把钥匙出厂时就写在了公开的安装文档和社区资料里。oscshop 后台的卖家登录入口由 seller.php 承载,登录动作路由为 Public/login,前端以 Ajax 方式提交表单:请求头带 X-Requested-With: xm lHttpRequest,Accept 声明期望 JSON 响应,表单字段为 username 与 password 两个明文键值。系统内置管理员账号 admin,初始口令 admin888。安装文档没有强制改密的环节,而运维人员往往安装后直接开始配置店铺,默认口令就此长期留存。对攻击者来说,这是一次零成本的认证:不需要爆破、不需要绕过任何逻辑,直接用公开的凭据走一遍正常登录流程即可。判定登录成功与否也很容易——后端返回 JSON,成功时 status 字段为 1,并附带「登录成功!」一类以「功!」结尾的中文提示文案,失败则返回错误状态与提示。响应格式的这种确定性,使得该问题同时可被批量探测。
0x03 利用链与请求包
利用只有一步:向后台登录入口提交默认凭据。完整请求包如下(目标以 192.0.2.10 示意):
POST /seller.php?s=/Public/login HTTP/1.1
Host: 192.0.2.10
Accept: application/json, text/ja vasc ript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: xm lHttpRequest
Connection: close
username=admin&password=admin888表单体 username=admin&password=admin888 即默认凭据本身,按标准 application/x-www-form-urlencoded 编码提交,无需其他字段。
命中漏洞的判定条件为两点同时满足:其一,响应状态码为 200;其二,响应体中包含「功!」字样(即「登录成功!」类提示文案的结尾字符)以及 "status":1, 这一 JSON 成功状态片段。两点齐备即说明默认凭据有效、后台会话已建立。验证逻辑给出的成功标识对应凭据对 admin:admin888。
登录成功后,攻击者即以该内置管理员身份持有后台会话,可直接访问后台各管理页面,查看并编辑商城系统:包括商品与分类管理、订单处理、会员数据、店铺配置等卖家侧核心功能。默认凭据本身即等同管理员权限,登录成功后即可查看、编辑商品、订单、会员数据等商城核心数据。
需要说明的是,以上请求包与判定特征依据技术分析记录中的验证逻辑整理;实际响应中的提示文案与 JSON 结构可能随站点定制略有差异,但「200 + 成功状态 + 成功提示」的判定模式不变。若目标已修改默认口令,该请求会返回登录失败的错误状态,不构成漏洞命中。
0x04 检测与修复建议
排查层面:在访问日志中检索针对 /seller.php?s=/Public/login 的 POST 请求,统计同一来源对 admin 账号的登录成功记录;对自己管理的站点,直接用默认口令试登录一次即可确认是否仍在使用初始凭据(确认后应立即改密并核查后台操作日志)。
修复层面:其一,立即修改内置管理员口令,新口令应包含大小写字母、数字与特殊字符且长度不小于 12 位;其二,禁止将管理后台直接暴露公网,通过防火墙或访问控制列表限定管理入口的来源地址;其三,对后台登录接口增加失败次数限制与告警,防止默认凭据被批量探测;其四,开启操作日志审计,记录所有管理操作与接口调用,并定期核对账户与密钥的使用情况。
0x05 参考资料
1. https://nosec.org/home/detail/6035.html

Wayyt 2小时前
最新评论