在众测SRC场景中,支付逻辑、XSS跨站脚本以及验证码安全是三类高频出现、易于验证且危害显著的漏洞。它们常成为渗透测试人员的重点突破方向。本文基于实战案例,系统梳理这三类漏洞的核心测试方法论,涵盖参数篡改、逻辑绕过、漏洞利用等关键技巧,并针对商城、小程序、政务等常见资产类型提供通用测试思路,旨在帮助安全从业者提升漏洞挖掘效率。
支付逻辑漏洞实战
支付漏洞是商城类资产渗透测试的重中之重。核心测试思路通常围绕订单关键参数的篡改与业务逻辑的绕过。
测试思路概览:
- 订单参数:尝试修改数量、单价等敏感参数,测试小数、负数、超大整数(如int最大值)、四舍五入等异常值的处理逻辑。
- 优惠券逻辑:测试优惠券的并发领取、优惠金额篡改、越权使用他人或更高面额优惠券等“薅羊毛”行为。
- 其他逻辑:测试能否更改订单状态(如取消时间)以占据库存,能否以低价商品替换高价商品,以及能否突破购买数量或地区限制。
案例一:商品数量篡改
- 以某医院小程序为例,对其商品购买业务进行测试。
- 初步尝试遍历
product_id、attr_value_id、client_id等参数,未发现可利用点。
- 转而尝试修改商品数量参数,提交请求。
- 成功生成异常低价订单,证实存在数量篡改漏洞。
案例二:越权使用他人优惠券
- 定位一处商城小程序。
- 下单时抓包,分析请求中的优惠券ID等敏感参数。
- 尝试直接修改商品数量或替换为更高优惠的券ID,但后端校验严格,请求失败。
- 转换思路:新建一个账户,该账户本身无优惠券。在支付请求中,尝试使用之前抓取到的其他用户的优惠券ID。
- 请求成功,实现了越权使用他人优惠券。
案例三:拦截响应包修改支付金额
- 在某商城支付流程中,发现前端生成支付二维码时,会请求一个价格查询接口。
- 拦截该接口的响应包,将返回的支付金额修改为任意小值(如0.01元)。
- 前端依据被篡改的响应数据生成支付二维码,成功以极低价格完成订单支付。这暴露了支付金额依赖前端返回数据、后端校验缺失的安全问题。
文件上传漏洞挖掘
文件上传漏洞的利用目标通常是上传WebShell获取服务器权限,其次可上传恶意文件或构造文件型XSS。主要关注以下功能点:
- 用户头像上传
- 评论/帖子附件上传
- 简历上传
- 富文本编辑器文件上传
案例一:评论附件任意文件上传
- 在某医院小程序的评论功能中发现图片上传点。
- 抓取上传请求,将文件名后缀更改为
.php、.exe等。
- 上传成功,可通过浏览器直接访问下载该文件。
- 为进一步验证危害,上传嵌有JavaScript代码的PDF文件,实现PDF型XSS攻击。
案例二:头像上传路径可控
- 测试小程序头像编辑功能。
- 上传
.exe可执行文件,成功保存。
- 进一步分析发现,上传路径中的目录名可由请求参数自定义。这意味着攻击者可能通过遍历或猜测,访问到其他用户的上传文件,甚至存在文件覆盖风险。
XSS跨站脚本攻击案例
XSS漏洞测试通常从输入点注入简单探针(如``)开始,若前端成功解析执行,则进一步利用。常见测试位置包括评论区、公告栏、个人资料编辑器、智能客服交互框以及文件上传后的展示点。
案例一:后台发布导致首页XSS
- 在某人才招聘网站后台,发现求职信息编辑发布功能。
- 在“意向职务”等字段插入XSS Payload并发布。
- 返回网站首页,发现Payload被解析执行,成功弹窗。由于该站为主站门户,影响面较大。
案例二:XSS窃取弱加密Cookie实现账号接管
- 在某租房网站发布房源信息时,测试输入点是否存在XSS。
- 注入Payload后成功弹窗,确认漏洞存在。
- 通过XSS尝试获取当前用户的Cookie。发现Cookie值实则为用户名和密码的MD5哈希值。
- 利用窃取的MD5密码,通过后台加密逻辑或撞库,成功接管其他用户账号。
案例三:富文本编辑器XSS
- 在用户资料编辑页面发现富文本编辑器。
- 切换到HTML源代码编辑模式。
- 直接插入XSS Payload并保存。
- 预览或再次编辑时,Payload被执行。这类漏洞常因编辑器过滤不严或允许某些危险标签(如``)导致。
案例四:智能客服交互XSS
- 寻找提供AI客服功能的页面。
- 在与客服的对话输入框中,先使用
<a>标签等探针测试。
- 确认解析后,构造窃取Cookie或页面内容的恶意Payload进行利用。
验证码安全绕过
验证码漏洞的核心在于绕过其校验逻辑,主要测试方向如下:
- 完全绕过:尝试删除验证码参数、置空、或提交
none、true、0000等值。
- 绑定逻辑缺陷:验证验证码是否与对应的手机号或邮箱严格绑定。
- 暴力破解:验证码复杂度不足(如4位纯数字)时可尝试爆破。
案例一:验证码爆破进入后台
- 对某党校系统登录口的验证码进行爆破,先爆破出已注册的测试账号。
- 获取该账号的短信验证码后,针对4位数字验证码进行暴力破解。
- 成功登录后台,泄露大量用户敏感信息(手机号、职务、地址等)。
- 进一步测试后台功能,发现聊天室存在XSS漏洞,以及文件上传功能。
验证码等身份验证环节的脆弱性,往往会成为进入系统后端的突破口,相关的后端安全防护至关重要。
案例二:验证码与账号绑定逻辑错误
- 在账号绑定手机/邮箱功能处,申请获取验证码。
- 收到验证码A(对应手机号A)。
- 在提交绑定的请求中,使用验证码A,但将绑定的目标手机号篡改为手机号B。
- 请求成功,实现了将手机号B绑定到当前账户,而手机号B并未收到任何验证码。同理,邮箱绑定也存在此类问题。
其他相关漏洞类型
未授权访问
组件或管理接口因缺乏访问控制而暴露,例如:
- Spring Boot Actuator:
/actuator/env, /actuator/heapdump
- Druid监控台:
/druid/index.html
- Swagger UI:
/swagger-ui.html
- 各类Web服务器管理界面(如Tomcat的
/manager/html)
案例:通过目录扫描发现某系统存在/actuator/heapdump未授权访问,下载堆转储文件后成功解密出数据库明文密码。这类因配置不当导致的信息泄露在云原生应用中也需格外警惕。
高危组件漏洞
利用已知公开漏洞的组件进行攻击,如Shiro反序列化、FastJson反序列化、Log4j2等。可使用Goby、Nuclei等工具进行批量检测。
越权漏洞
尽管现在越权漏洞挖掘难度增加,但在修改个人信息、密码、邮箱等敏感操作时,仍需测试身份标识(如user_id)是否可被篡改。
案例:某图片上传功能,删除图片时仅校验图片ID是否存在,未校验当前用户是否有权操作,导致任意图片删除越权。
并发请求漏洞
在限量、限额、计数等业务场景下,通过高并发请求可能造成逻辑错误。
- 测试点:限量商品抢购、签到领积分、重复退款、点赞/关注、优惠券领取、短信/邮箱轰炸等。
- 案例:对小程序签到接口进行并发请求,成功实现单次请求获取多次签到积分。
短信/邮箱轰炸
利用验证码发送接口无频率限制、无图形验证码等缺陷,通过脚本循环调用,向目标手机号或邮箱大量发送短信/邮件。
|