替代javascript:当冒号被过滤时

时间:2013-07-04 21:30:37

标签: javascript xss

我在我的网站上设置了一个故意易受攻击的表单来测试一些xss向量。 然后我想用href xss,如果:被过滤那么xss怎么可能,因为你必须像这样javascript:alert(1)插入<a href="javascript:alert(1)"?说不允许%3A。 感谢任何可以帮助我的人。

1 个答案:

答案 0 :(得分:1)

要按字面意思回答您的问题,如果只过滤了<>:%和引号,那么您仍然可以

javascript&#58;

http://jsfiddle.net/zaN9m/

请不要将此作为添加此额外字符的提示。这正是你永远的游戏 落后一步。如果你做“过滤所有不好的字符”的话,你将无法允许无害的输入,所以是的。

考虑当您开始寻找&#58;并通过javascript:&:#:5:8:;时会发生什么。过滤器不会检测到&#58; 但是会删除冒号,结果将被javascript&#58;冒出结肠并且再次成为将死。

您要做的是查看URL是否具有方案,并将其与已知的良好方案(如http和https)相匹配。你也会有 将HTML编码应用于结果。这是防弹,你不必玩游戏。