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