最近我看到一些人发布了有关他们的xss多晶硅锭的信息,
我遇到一个问题,每个人都在谈论使用crlf绕过XSS。
我不知道如何使用CRLF绕过XSS过滤器。
请让我知道。
谢谢。
答案 0 :(得分:0)
为了给您更好地解释,我将举一个例子。 但是一般的想法是CRLF字符由服务器端语言(例如PHP)解释,但是被HTML丢弃为空格,这将使您有可能绕过服务器端过滤器(因为这不是它们阻止的内容) )并扔进DOM,然后在DOM中或多或少地将其删除CRLF字符并执行有效负载。
示例:
<iframe src="{$user_input}"></iframe>
让我们想象一下,我们将用户输入带到可以找到变量{$user_input}
的地方。您可能已经意识到注入到iframe源中的输入是危险的,因为攻击者可以输入javascript:alert(0)
作为输入并接收警报。随意尝试一下,您会看到的。
因此,让我们想象一下,开发人员听说有人正在使用此漏洞在其网站上获取XSS。他们决定创建一条规则,在规则中输入javascript:
,然后再输入源。现在有3种潜在的方式来获取XSS。
首先是做类似jAvAsCrIpT:alert(0)
的事情。如果替换方法区分大小写,那么它将起作用。
第二种方法是尝试类似的操作:javajavascript:script:alert(0)
。这也将起作用,因为它将仅剥离javascript:
,而将其保留为javascript:alert(0)
。
第三种也是最后一种方法(至少可以想到,可能还有更多的方法)是使用CRLF /换行符。您可以执行以下操作:java%0a%0dscript:alert(0)
,它是URL编码的CRLF字符(%0a%0d
)。这将绕过它,因为PHP认为它实际上不是javascript:
,而HTML会将其读取为属性值(src
)中的空格,而忽略了回车符。