level1:
注入基本脚本,查看源码,重新给alert赋值(定义),将uel中name的参数修改为<script>alert()</script>这类型属于反射型xss.<script>alert()</script>
level2:
查看源码,发现过滤了<>符号,对<>进行了实体化
修改input标签的value值,修改payload:"><script>alert()</script>,提前将input标签闭合,让<script>独立出来。
执行"><script>alert()</script>
level3:
注入基本脚本,查看源码,value里的<>被实体化
将payload修改为:123' οnmouseout='alert() 或 123’ οnclick=’alert()
执行123’ οnmοuseοut=’alert() 或 123’οnclick=’alert()
level4:
注入脚本,<script>alert()</script>,查看源码,<>被过滤掉
尝试使用123" οnclick="alert()
level5:
注入脚本<script>alert()</script>,发现script中间被加了下划线,对“script”字符串进行了匹配过滤,尝试使用大小写绕过,发现还是不可以
尝试使用其他标签,比如,<a>,使用javascript进行测试会发现并没有被过滤,查看源码,构造payload:"><a href='javascript:alert()'>。点击搜索,会发现有一个超链接
点击执行
level6:
将可能使用上的单词输入,发现script和onclick不能使用,javascript没有被过滤。
尝试使用"><a href='javascript:alert()'>,没有被识别
查看源码
会发现在href下架了下划线,尝试使用大小写绕过"><a hrEf='javascript:alert()'>
level7:
输入<script>onclick javascript,script字符串整个都被过滤掉了,输入的on被过滤掉了,javascript的script也没有了。
尝试双写: "><scripscriptt>alert()</scrscriptipt>
level8:
产看源码
发现输入框的value值会被填进超链接的href里,所以我们只需构造href就好了。
执行javascript:alert(),javascript被过滤了,调整大小写也没有用
尝试使用实体化编码
javascript:alert()
level9:
将上一关的payload放上去,看一下是否有修改的地方
提示我们链接不合法,输入http://试试, 输入中要有http://才能被识别写入。那只要包含它就可以了(注释掉)
将javascript被过滤的部分实体编码 javascript:alert()//http://
执行!
level10:
没有输入框,也没有超链接。不过可以观察到页面的输出和url中的keyword参数有关。
被实体化,查看源码
有三个input。每个输入框中都有自己的name,应该会从url中获取参数,发现t_sort可以利用
修改url:
t_sort=" type="text" οnclick="alert() 并点击输入框
level11:
查看源码,会发现和上一关类似的地方
尝试用上一关的方法
继续像第十题那样
t_sort=" οnclick=alert() type="text"
并没有反应
查看源码,被过滤了
继续查看源码,发现有一个特殊的referer,接着打开HackBar,点击referer
在t_ref 写入参数
level12:
查看源码
利用Hackbar的User Agent 输入个参数试试
用户代理(User Agent,简称 UA),是一个特殊字符串头,使得服务器能够识别客户使用操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
构造payload
level13:
已经给出了提示,利用cookie传参
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
得到了这些信息之后还是尝试利用HackBar的cookie查看是否可以利用,勾选cookie
没有反应,使用bp进行抓包,会发现cookie里有个隐藏的uesr,知道了隐藏的user后,继续尝试利用HackBar