我在我的网站上设置了一个故意易受攻击的表单来测试一些xss向量。
然后我想用href xss,如果:被过滤那么xss怎么可能,因为你必须像这样javascript:alert(1)
插入<a href="javascript:alert(1)"
?说不允许%3A。
感谢任何可以帮助我的人。
答案 0 :(得分:1)
要按字面意思回答您的问题,如果只过滤了<
,>
,:
,%
和引号,那么您仍然可以
javascript:
请不要将此作为添加此额外字符的提示。这正是你永远的游戏 落后一步。如果你做“过滤所有不好的字符”的话,你将无法允许无害的输入,所以是的。
考虑当您开始寻找:
并通过javascript:&:#:5:8:;
时会发生什么。过滤器不会检测到:
但是会删除冒号,结果将被javascript:
冒出结肠并且再次成为将死。
您要做的是查看URL是否具有方案,并将其与已知的良好方案(如http和https)相匹配。你也会有 将HTML编码应用于结果。这是防弹,你不必玩游戏。