XSS过滤绕过与IDOR漏洞利用实战
嗨,我是JM Sanchez,一名学生兼漏洞赏金猎人。经过数月的重复报告后,我终于发现了一个有效的高危漏洞。
我测试的网站提供在线支付集成系统,用户可以管理客户并开具发票。之前我报告过多个XSS、CSRF等漏洞,但都是重复报告。
在测试网站功能时,我发现了如下URL:
/MerchantUser/create_customer/CUS-123456-A1B2C3
测试后发现存在IDOR漏洞。即使未经授权,我仍能通过另一个账户查看并编辑客户详细信息。
12位字母数字组合虽然理论上可暴力破解,但实际不可行。根据测算,破解12位密码需要约200年时间(https://www.betterbuys.com/estimating-password-cracking-times/)。
在暂时保留这个发现后,我尝试将其与其他漏洞结合以提高危害等级。首先尝试通过信息泄露枚举CustomerID但未果,于是转向测试XSS漏洞。
漏洞利用
发现该端点实际上存在XSS漏洞!虽然过滤器会自动移除HTML标签(可能使用PHP的strip_tags函数),但通过以下方式绕过:
- 客户信息修改后存储在
<input>的value属性中 - 使用
"> escaped?成功逃逸属性,形成:
<input name="..." class="..." value="">escaped? ">
- 尝试添加JavaScript事件处理器但被过滤
- 最终构造有效载荷:
" onmo<x>useover="alert(document['cookie'])">
过滤器无法识别被标签分隔的事件处理器,实际保存为:
" onmouseover="alert(document['cookie'])">
- 进一步构造无需交互的载荷:
" onf<x>ocus="alert(document['cookie'])" autofocus">
组合攻击
在同一个存在IDOR漏洞的端点上实现了存储型XSS。由于无法猜测其他用户的CustomerID,通过以下步骤实施攻击:
- 创建包含XSS载荷的客户信息
- 将链接发送给目标用户
- 目标打开链接时执行任意JavaScript
- 可进一步升级为账户接管和窃取隐私信息
时间线
- 报告日期:2021年12月1日
- 确认日期:2022年1月11日
- 赏金金额:800美元
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码
![办公AI智能小助手]()


浙公网安备 33010602011771号