绕过XSS黑名单“<”,“>”,“&”输入nvarchar

时间:2012-02-16 10:36:47

标签: asp.net xss

我正在使用某些将某些字符列入黑名单的软件“<”,“>”,“&”用户提交的值。

显示提交的结果时,不会对值进行HTML编码(将所有提交的结果输出到表格中)。

它将值存储在Sql Server的nvarchar字段中。

您是否可以在此黑名单方法中找到XSS漏洞? 期待能否让软件供应商对HTML进行编码输出。

修改

我发现表中的值首先作为javascript变量输出,然后添加到页面中。 javascript中的值是javascript编码的。 javascript编码正在执行它的工作并转义字符串变量中的值。

我正在寻找从这个javascript字符串变量渲染的html中的xss漏洞。

想法失败

鉴于使用javascript,请使用javascript unicode表示< >

“\ u003cscript \ u003ealert( '喜'); \ U003 /脚本\ u003e”

然而,正如上面提到的,javascript编码器正在做它的工作,只是作为文本输出。

1 个答案:

答案 0 :(得分:1)

我知道这是旧的,但黑名单的尖括号 NOT 在所有情况下都会阻止XSS。

反例是你将用户输入放入HTML属性中;例如创建mailto链接与他们的电子邮件。 如果他们输入此作为他们的电子邮件地址:

  

" onclick ="警告(' XSS没有尖括号!')"

他们有XSS'你的网站。