XSS-Labs靶场通关记录 1 - 13 关

概述

XSS漏洞原理

XSS(cross site scripting) 跨站脚本攻击,攻击者将自己的恶意js代码让受害者浏览器执行。

漏洞危害

可能会导致窃取凭证、篡改页面、构造xss蠕虫等。

漏洞防范

  1. 如果对简单的输入框,则需要识别和转义特殊字符,包括尖括号、引号、javascript中任意字符等。
  2. 针对功能复杂的富文本输入框,建议使用成熟的前端富文本输入框组件,如ueditor等。
  3. 在HTTP响应头中,为set-cookie选项额外添加http-only的值。

通关记录

第一关

发现输入点为url,将其附加所需的弹窗的JS代码  <script>alert()</script>,即可通过。

第二关

按第一关的方法,发现JS代码被合并,因此补全前面的 ”>  ,JS才有效。

第三关

查看页面源码,发现可将传进去的值的前面的引号闭合,因此可用输入

?’ οnmοuseοver=“alert(); ‘

第四关

查看页面源码,发现传进去的值会被前面的引号闭合,因此可用输入

?” οnmοuseοver=“alert(); “

第五关

引入超链接绕过,即

as"> <a HREF=java&#115;c&#114;ipt:alert(1)>aaa</a>

第六关

使用超链接,并将script字样进行html实体转义,语句同上一关。

第七关

根据页面源码,发现onmouseover等函数会被割舍前两个字符on,因此可双写该

部分字符达到绕过,即

as" oonnmouseover="alert(1)">

第八关

可知输入框的内容为链接内容,所以利用超链接的构造语句,将其输入到其中。

第九关

经过多次尝试,发现输入必须含有 http 字眼才合法。但当http被引号括起来后,左方的引号被转义成&quot,因此再加一个双引号,即可并成一个字符串,实现script。输入内容可构造为:

java&#115;c&#114;ipt:alert(""http://")

第十关

查看源码发现有三个隐藏的输入框,将其type改为text,发现只有t_sort的内容会显示在value值里面。因此在第三个框里输入" οnmοuseοver="alert(1)",再将type类型更改,即可实现弹窗。

 第十一关

发现t_ref会回显上一次历史记录,因此可以考虑重放,将refer的值改为

s" οnmοuseοver="alert(1)"

第十二关

思路同11,但头部信息改的地方为 user-agent

第十三关

大致思路同上,从而构造cookie


版权声明:本文为SEV__en原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。