某电商项目安全测试报告
注意:报告格式请参考word版,本文不做排版设计
1. 概述
1.1. 测试人员
序号 | 姓名 | 联系方式 | 报告时间 |
---|---|---|---|
1 | 阿峰 | xuanchu@test123.com | 2021-09-03 |
1.2. 测试目标
本次安全测试预期达到的目标为:
- 微信小程序:根据小程序的开发特性,在SQL注入、越权访问、文件上传、CSRF以及个人信息泄露等漏洞进行检测,防护衍生的重大危害
- 网页应用:对注入、跨站、越权、CSRF、中间件、规避交易、信息泄露、业务等 6检测项进行安全检测
- 针对发现的安全漏洞提供相应的安全建议。
1.3. 测试范围
本次安全测试的范围如下:
序号 | 系统名称 | 测试地址 |
---|---|---|
1 | 商城后台 | https://******.test.cn/boc-opetation-web-pc/ |
2 | 云店小程序 | 小程序SIT测试环境 |
3 | 云小店小程序 | 小程序ST测试环境 |
1.4. 测试工具
测试工具:BurpSuite、Apache Jmeter、微信开发者工具、Charles、OWASP ZAP、火狐浏览器、Navicat
2.1. 登录认证
类别 | 测试项 | 测试结果 | 说明 |
本地加密传输 | 敏感信息加密传输 | 已通过 | 密码进行了加密传输 |
敏感信息加密方式不安全 (未使用TLS/SSL) | 已通过 | 使用的HTTPS协议 | |
页面源码模式下查看密码 | 已通过 | ||
密文对比认证测试 | 已通过 | 经过了前后端两次加密 | |
服务端日志脱敏 | 服务端日志脱敏打印 | 已通过 | |
数据加密存储 | 数据库针对敏感信息字段加密存储 | 已通过 | 密码已经加密存储 |
账号登录限制(能否在两个设备上同时登录同一个帐号) | 没有限制 | 同一个账号在不同设备登录(小程序和后台) | |
Session会话超时策略 | 没有超时 | ||
安全策略设置 | 认证失败锁定策略 | 没有锁定 | 多次登录失败没有锁定 |
Session会话注销策略 | 已通过 | 已清除了cookie | |
Session固定会话测试 | 已通过 | ||
弱token设计缺陷策略 | 已通过 |
2.2. 授权访问
类别 | 测试项 | 测试结果 | 说明 |
越权 | 未授权访问 | 已通过 | |
水平越权 | 不通过 | 会员详情出现水平越权 | |
垂直越权 | 不通过 | 用普通账号可以新增用户 |
2.3. 手机验证码
类别 | 测试项 | 测试结果 | 说明 |
手机验证码 | 验证码客户端回显测试 | 已通过 | |
验证码暴力破解 | 已通过 | ||
验证码重复使用 | 不通过 | "keepDays": 1, | |
验证码绕过 | 已通过 |
2.4. 业务接口调用
类别 | 测试项 | 测试结果 | 说明 |
业务接口调用 | 接口请求次数限制 | 不通过 | 同一个账号可以多次并发提交 |
篡改提交订单接口信息 | 不通过 | 纂改订单金额数据,导致支付金额不对 | |
修改订单接口itemId和SkuId | 已通过 | 纂改订单中的商品 |
2.5. 文件上传和下载
类别 | 测试项 | 测试结果 | 说明 |
上传和下载 | 文件下载测试 | 已通过 | |
文件上传测试 | 已通过 | 阿里云OSS |
2.6. 渗透测试
类别 | 测试项 | 测试结果 | 说明 |
渗透测试 | SQL注入 | 已通过 | Owasp zap工具扫描有1个,Sqlmap工具验证无法SQL注入 |
Cross-Domain configuration | 中风险 | Owasp zap工具扫描Cross-Domain misconfiguration 有22个 | |
X-Frame-Options Header | 中风险 | Owasp zap 工具扫描X-Frame-Options Header Not Set的有2个 | |
跨站点脚本 (XSS) | 已通过 | ||
CSRF攻击 | 已通过 |
3.1测试统计
本次测试共发现以下漏洞,详细信息见下表:
漏洞名称 | 发现次数 | 风险等级 | 漏洞产生原因 | ||
编码层面 | 业务逻辑 | 产品缺陷 | |||
订单串号和参数纂改 | 1 | 高风险 | √ | ||
同个账户可多次提交订单 | 1 | 中风险 | √ | ||
普通账号可以进行超管的操作 | 1 | 高风险 | √ | ||
登录失败锁定策略 | 1 | 低风险 | √ | ||
账号登录限制 | 1 | 低风险 | √ | ||
Session会话超时策略 | 1 | 低风险 | √ |
3.1.1 登录认证
3.1.1.1威胁级别
高风险 | 中风险 | 轻风险 | ■ |
3.1.1.2漏洞描述
- 登录失败锁定策略,测试结果:商城后台:登录错误5次以上没有锁定、云小店、正大云店小程序:登录错误5次以上没有锁定
- 账号登陆限制,同一个账号,同一个平台,不同的设备登陆是否互踢,测试结果:web商城后台、云小店小程序、云商小程序:同一个账号登录不互踢
- 会话超时策略:商城后台1小时内没有任何操作没有自动退出平台
3.1.1.3漏洞位置
无
3.1.1.4修复建议
建议针对添加失败锁定策略以及账号登陆限制和会话超时策略
3.1.2业务接口调用
3.1.2.1威胁级别
高风险 | ■ | 中风险 | 轻风险 |
3.1.2.2漏洞描述
- 提交订单接口篡改订单金额,页面显示篡改后的订单金额,实际付款是纂改后的金额数据;
- 同一个账号可多次并发提交订单
3.1.2.3漏洞位置
- 接口:/gateway/api/icommerce-trade/v1/trade/submitOrder
- 字段:payAmount、sellPrice
3.1.2.4修复建议
- 一个账号不能多次提交订单,该漏洞结果会导致工具不断刷单操作
- 建议提交订单接口不能纂改金额数据或通过其他优化方式进行优化。
3.1.3水平越权
3.1.3.1威胁级别
高风险 | 中风险 | ■ | 轻风险 |
3.1.3.2漏洞描述
- 通过修改会员ID,可以查看其他会员的数据信息;
- 用云小店的用户A的请求头去购买云店的商品1,请求接口后这个订单信息在云小店的,而没有在云店,说明提交订单时没有对商品进行判断
3.1.3.3漏洞位置
- 接口:/gateway/api/icdp/v1/memberCard/query/1284931356527577058/
- 接口:/gateway/api/icommerce-trade/v1/trade/submitOrder
3.1.3.4修复建议
可以看到其他用户的信息,就有信息泄露的风险,以及提交订单时没有对商品进行判断会导致数据风险,建议修复。
3.1.4垂直越权
3.1.4.1威胁级别
高风险 | ■ | 中风险 | 轻风险 |
3.1.4.2漏洞描述
- 首先我们先用一个超级管理员的账号去登陆一下(boc_admin)
- 然后我们对超级管理员的账号独一无二的权力去进行操作(新增用户)
- 然后我们把这个操作的数据包给抓下来
- 抓下来之后,我们就退出超级管理员的登陆,我们用普通账号(group_wuqi),来进行一次这个超级操作
3.1.4.3漏洞位置
- 接口:/gateway/api/user/v1/user
3.1.4.4修复建议
可以执行超管的权限进行用户新增,建议修复。
4. 总结
本次某电商项目安全测试,共发现6个问题,按风险等级统计,低风险问题3个,中风险问题1个,高风险问题2个;按漏洞产生原因统计,编码层面问题6个,产品设计问题0个。
正文到此结束