我正在使用某些将某些字符列入黑名单的软件“<”,“>”,“&”用户提交的值。
显示提交的结果时,不会对值进行HTML编码(将所有提交的结果输出到表格中)。
它将值存储在Sql Server的nvarchar字段中。
您是否可以在此黑名单方法中找到XSS漏洞? 期待能否让软件供应商对HTML进行编码输出。
修改
我发现表中的值首先作为javascript变量输出,然后添加到页面中。 javascript中的值是javascript编码的。 javascript编码正在执行它的工作并转义字符串变量中的值。
我正在寻找从这个javascript字符串变量渲染的html中的xss漏洞。
想法失败
鉴于使用javascript,请使用javascript unicode表示< >
“\ u003cscript \ u003ealert( '喜'); \ U003 /脚本\ u003e”
然而,正如上面提到的,javascript编码器正在做它的工作,只是作为文本输出。
答案 0 :(得分:1)
我知道这是旧的,但黑名单的尖括号 NOT 在所有情况下都会阻止XSS。
反例是你将用户输入放入HTML属性中;例如创建mailto链接与他们的电子邮件。 如果他们输入此作为他们的电子邮件地址:
" onclick ="警告(' XSS没有尖括号!')"
他们有XSS'你的网站。