一,什么是缓存中毒
Web 缓存中毒是一种复杂的技术,攻击者希望利用 Web 服务器和缓存的操作向其他用户提供恶意 HTTP 响应。
Web 缓存中毒有两个步骤。首先,攻击者必须弄清楚如何从后端服务器获取具有潜在危险的有效负载响应。他们必须缓存他们的回复,并在他们成功后才将其提供给预期的受害者。
受感染的 Web 缓存能够成为传播一系列攻击的破坏性手段,包括 XSS,DOS,JavaScript 注入,模板注入,开放重定向等。
二,xss绕过waf过程
target:xsstest.com
漏洞url:
https://www.xsstest.com/annonces/location-vacances/france_midi-pyrenees_46_stcere_dt0.php.js
易受攻击的参数是:hav 在cookie里
var hav="value from cookie"
服务器有一个保护,它“隐藏”了双引号,但是服务器没有使用大于和小于符号 (<>) 来做到这一点,这允许我关闭脚本标签并使用双引号保护,才导致我能够绕过 WAF。
这个payload会触发waf响应码403响应中提示没有权限
Cookie:hav=xss"</script><svg/onload=alert(document.domain)>
但是使用双引号就可以绕过waf
Cookie:hav="xss</script><svg/onload=alert(document.domain)>"
把原来的cookie替换成payload就可以看到
服务器将:
https://www.abritel.fr/annonces/location-vacances/france_midi-pyrenees_46_stcere_dt0.php.js
视为“可缓存”响应,因此 cookie 中反映的值保存在该页面中,任何访问:
https://www.abritel.fr/annonces/location-vacances/france_midi-pyrenees_46_stcere_dt0.php.js
的用户都会收到 XSS攻击。
会话 cookie 被标记为 HTTPonly,但是XSS所在的同一页面中,有一个 JS 变量称为 window.INITIAL_STATE.system.cookie 会话以明文形式所在的位置。
payload:
xss"</sc"ript><sv"g/onloa"d=aler"t"(window.INITIAL_STATE.system.cookie)>
所以有以上四种因素可以进行账户接管。
免责声明:本公众号不承担任何由于传播、利用本公众号所发布内容而造成的任何后果及法律责任。未经许可,不得转载。
原文始发于微信公众号(重生者安全团队):【赏金猎人】缓存中毒XSS绕过waf接管帐户
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论