- 综合
xss在线靶场
时间:2010-12-5 17:23:32 作者:热点 来源:娱乐 查看: 评论:0
内容摘要:这个词,听起来像是一群黑客在玩电子游戏,实际上它就是。我第一次接触它是在一个深夜,同事发来一个链接,说“试试这个,能打穿算你厉害”。那是个模拟的评论区,看起来跟普通论坛一模一样,但底下藏着一行小字:X
这个词,靶场听起来像是靶场一群黑客在玩电子游戏,实际上它就是靶场。我第一次接触它是靶场在一个深夜,同事发来一个链接,靶场说“试试这个,靶场能打穿算你厉害”。靶场那是靶场个模拟的评论区,看起来跟普通论坛一模一样,靶场但底下藏着一行小字:XSS挑战赛 Level 1。靶场 我输入了最经典的靶场``,页面弹窗了。靶场但那种感觉不是靶场“我成功了”,而是靶场“这太简单了,后面肯定有坑”。靶场 果然,Level 2 把尖括号过滤了。我试了各种编码,`%3Cscript%3E`不行,`<script>`也不行。最后发现它只过滤了`<`和`>`,但没过滤`onerror`属性。于是我用`
`,图片加载失败,弹窗出来了。那一刻我意识到,靶场不是让你练习“怎么弹窗”,而是让你学会“怎么绕过过滤规则”。 到了Level 5,事情变得诡异起来。输入框在前端被完全禁用了,连键盘都敲不进去。我查看源码,发现有个隐藏的`input`字段,但它的值被写死在JavaScript变量里。我改了URL参数,把`?name=test`改成`?name=" onfocus="alert(1)`,然后按Tab键触发焦点。弹窗出现时,我旁边没坐人,但我自己笑出声了。 这些靶场的价值,不在于你最终能攻破多少关。它像健身房里的沙袋,你打它不是为了把它打烂,而是为了练自己的出拳速度。我见过很多开发者在真实项目里犯同样的错误——把用户输入直接拼进HTML,却不知道浏览器会把它当代码执行。 有个细节特别有意思:靶场最后一关的提示是“试试看能不能窃取cookie”。我试了半天,发现它设置了`HttpOnly`标志,脚本根本读不到。那一刻我才真正理解,为什么安全最佳实践会强调这个属性——它不是防黑客的,是防“你自己写的烂代码”的。 玩靶场最爽的瞬间,不是弹窗的那一刻,而是你发现某个过滤规则可以用`