本文将详细介绍当前已被主流废弃但仍可在攻击场景中利用的URL Credentials技术,将其扩展用于各种常见漏洞的绕过
一、URL Credentials 原理深度解析
HTTP URL 标准结构:
Plain Text scheme://username:password@host/path |
这段结构的作用在现代 Web 中基本被废弃(用于 Basic Auth 的场景已不再安全,可以看到在https://developer.mozilla.org/zh-CN/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL中已经没有提及)
浏览器厂商为了防止钓鱼攻击,从 2014 年起开始弃用该语法:
-
Chrome 59+: 直接去除地址栏显示用户信息。
-
Chrome 65+、Firefox、Safari:全面禁止带有用户名密码的 URL 进行跳转(尤其是 HTTPS 下)。
-
现代浏览器访问这种格式的 URL,会直接报错、重定向失败、或忽略用户信息部分。
但它依然被现代浏览器和很多网络中间件完整支持和解析。关键点如下:
-
✅ 浏览器不会将 username:password 发送给目标站点,但会参与URL 的 host 解析。
-
✅ host 部分仍是 @ 之后的部分,因此实际请求发送到了目标主机。
-
✅ 某些 Web 应用、Nginx、CDN、WAF 会对完整 URL 进行正则处理,从而可能错误解析。
二、攻击核心思想重现
攻击者可以将 payload 插入到 username 、password字段中,这些数据在携带上访问浏览器时并不会看到,服务端可能通常也不会获取注意到,但可以用于做DOM XSS 、混淆日志、绕过 WAF、欺骗 SSRF 验证。
例如
|
输入在浏览器时,基本隐匿且从location中无法获取到
但是可以通过alert(document.URL);获取到,基于此聪明的你应该会想到一些扩展利用的思路,来去做一些DOM XSS
例如:
GET /redirect?target=https://<script>alert(1)</script>@evil.com
-
对于浏览器、真实请求而言,请求的是
evil.com
-
WAF 如果只做“全局 keyword 匹配”或“正则主机检查”,往往会将
<script>
部分忽略或误解
这不是前端 trick,而是后端逻辑处理问题
三、DOM XSS 绕过
目标站点配置:
云 WAF 开启;
拦截规则含:
<script>
,javascript:
,onload
,alert(
等关键词;redirect 接口:
/go?url=...
🚫 阻断 Payload:
/go?url=https://evil.com/<script>alert(1)</script>
403 Forbidden
✅ 绕过 Payload(核心):
/go?url=https://<script>alert(1)</script>@evil.com
成功跳转
payload 存于 username 字段,WAF 不检测 @ 前内容
SSR 渲染页面中若拼接该 URL,容易造成二次执行(DOM XSS)
更进一步的攻击方式:
// DOM 拼接型漏洞 window.location = decodeURIComponent(getParam("url")); // 用户点击跳转时执行 |
将前端结合 WAF 绕过一起打爆点。
四、SSRF 白名单绕过的更深层复现
目标场景:
Python url = request.GET['url'] if not url.startswith("https://internal.company.com"): return "forbidden" |
攻击者构造:
https://[email protected]/data |
urllib.parse() 在 Python <3.9 中返回如下结构:
|
结果:
SSRF 请求实际上打向了 evil.com
白名单校验误判为合法
WAF 误以为走的是可信接口,导致漏洞产生。
五、日志注入与反欺骗
攻击者通过构造如下 URL:
Python https://admin:[email protected]/dashboard |
系统日志会记录 https://admin:[email protected]
攻击者可以用来诱导安全人员以为 admin 凭据泄露
进一步结合钓鱼页面伪造,构成渗透取证干扰链条。
六、防御措施与架构建议(深度)
点击图片可查看完整电子表格
七、扩展探讨攻击链
假设目标存在如下组合: |
SSRF 接口 /?url=...
DOM 拼接触发跳转
站点部署了主流云 WAF
构造攻击链如下:
url=https://<script>alert(1)</script>@evil.com
绕过 SSRF 白名单校验(走 evil.com)
WAF 不拦截 @ 前 XSS Payload
页面跳转拼接触发 XSS
利用 CSP 不当、Referer 泄露等获取更多信息
八、总结语句
有时候,绕过安全防线不需要很复杂的技术,只需要一处被忽视的老标准 —— URL Credentials。它让攻击者能将恶意 payload 隐匿在 @ 前面,躲过 WAF、日志、白名单验证,打通 SSRF、XSS、钓鱼链路。下一次审计 URL 时,不妨认真看看 @ 之前,藏着什么鬼。
原文始发于微信公众号(暴暴的皮卡丘):隐藏在 URL Credentials 中的 Payload:被忽视的 Web 绕过路径
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论