XSS攻击原理
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
XSS的类型
1.反射型的XSS(非持久型XSS)
1.存储型的XSS(持久型XSS)
3.DOM型的XSS
xss攻击常用方法
1.大小写绕过
2.利用过滤后返回语句再次构成攻击语句来绕过
3.编写脚本代码绕过关键字过滤
4.主动闭合标签实现注入代码
5.组合各种方式

首先,让我们点击图片
开始第一关吧

我们可以看到当前页面没有用户输入点
查看代码(友情提示:F12/鼠标右键)

发现可以在地址栏中更改用户的名字
输入<script>alert(/xss/)</script>
![]()

直接执行脚本,没有对输入有任何的过滤
并不是只有script可以插入代码
我们还可以使用<img>标签
<img src=”w” οnerrοr=”alert(/xss/)”>
![]()

图片错误会执行后面的onerror语句
同理
也可使用<a>标签、<iframe>标签
使用onmouseout移开鼠标、onclick点击等等进行alert(/xss/)语句
点击确定进入第二关

发现多了一个文本框和按钮
查看代码

尝试修改文本框内容,发现

三处同时变化
利用input标签的value值
采用<script>标签,绕过
注意:需要构造闭合
"><script>alert(/xss/)</script><input name="

或者使用onmouseout 鼠标移动进行某操作
2" οnmοuseοut="alert(/xss/)

onclick亦可
" οnclick="alert(/xss/)

我们来到第三关

第三关和第二关一样有一个文本框和一个按钮
查看代码

按照第二关的第一种方法尝试,发现无法解析<>和””

那就要换种绕过方法
构造事件onclick触发,并且把" "改为' '
发现是可执行的
![]()

既然onclick可以那onmouseout一定也可以,试一下
' οnmοuseοut='alert(/xss/)
![]()

来到第四关

按例查看代码,使用
尝试"> <script>alert(/xss/)</script><input="
<>仍被实体化
onclick可以
" οnclick="alert(/xss/)

onmouseout
" οnmοuseοut="alert(/xss/)

来到第五关啦

首先,我们还是尝试使用<script></script>
出错了

查看源代码

scr和ipt中间有了个下划线,对script进行了过滤
采用上一关的方法" οnclick="alert(/xss/) 发现 on也被过滤了

使用一种新方法
<a>标签:超链接
"><a href="javascript:alert(/xss/)">5<"


点击超链接

还有一种方法:
使用<iframe>标签
"><iframe src=”javascript:alert(/xss/)"><"
发现弹窗了

但是呢,出现了一个小问题你点确定却没有跳转。不要困惑你过关了,但是此方法暂时不能直接过去~
还是使用上一个方法吧。
来到第六关啦

使用上一关的方法调用<a>

没有出现超链接
我们查看源代码一下

hr和ef中间出现下划线,尝试切换大小写绕过
"><a Href="javascript:alert(/xss/)">6<"
出现超链接了
代码正确

点击超链接,进入下一关吧

进入第七关啦

进行<script></script>尝试,被过滤掉了
onclick尝试,on无法显示

怎么办呢?
尝试一下复写
" oonnclick="alert(/xss/)

成功了

又学会了一种方法呢。
进入第八关吧

发现比之前的关卡多了一个链接
查看代码看看吧

试试<script></script>标签吧,一如既往的不行呢。
输入javascript:alert(/xss/)发现

r和i之间有了个空格,但其实那是个制表符
有两个方法
方法1:在url里面javascript字母中加入url编码的制表符:%09

方法2:将javascript其中一个字母实体化编码
分享一个链接:在线编码转换
可以进行转换,例如

javascript:alert(/xss/)

进入第九关了

查看一下代码

尝试上一关的方法
avascript:alert(/xss/)

发现没有问题,是为什么不能跳转呢?
哦,原来人家给提示了“您的链接不合法”
那我们就想个办法使其合法吧
查看地址栏发现![]()
需要前缀
那就加个前缀试试吧


那就使用之前的代码并把http://注释掉试试吧
javascript:alert(/xss/)//http://

嗯,成功了!!!
点击链接
到第十关了哦

页面没有找到用户输入口
查看页面输出口发现
![]()
可能于此有关
尝试修改

哦哦,没有变化
查看代码
发现隐藏类型的input标签
在地址栏输入

再次查看代码

我们发现t_sort可以改value的值
可以借用,在url中输入t_sort=" type="text" οnmοuseοut="alert(/xss/)

出现一个文本框
移动鼠标

第十关挑战成功了!!!









