XSS Challenges学习笔记

文章目录

    • 第一关
    • 第二关
    • 第三关
    • 第四关
    • 第五关
    • 第六关
    • 第七关
    • 第八关
    • 第九关
    • 第十关
    • 第十一关
    • 第十二关
    • 第十三关

第一关

随便输入数据,点击search,按F12查看元素,发现显示在b标签内
XSS Challenges学习笔记_第1张图片
所以先闭合b标签,输入444"就OK了。

第二关

随便输入数据发现不显示,按F12审查元素,找到输入框input标签,发现框框里输入的数据会显示在input标签里的value里
XSS Challenges学习笔记_第2张图片
所以就可以构造语句">"<前后闭合标签就OK了。

第三关

这一关发现,在输入框里输入的代码不管怎么闭合,都会被当作字符串输出出来,这样只能把关注点放在后边的下拉选项中,因为它也随着出现在输入框下面
XSS Challenges学习笔记_第3张图片
因为不是输入框,我们没法随意输入,所以可以采用抓包。
修改参数p2,OK了。
在这里插入图片描述

第四关

随便输入数字,点击search,然后抓包截断,发现
XSS Challenges学习笔记_第4张图片
有一个隐藏参数p3,这时我们可以回到页面,点击F12,进行代码审查,搜索hidden,找到form表单里的hidden
XSS Challenges学习笔记_第5张图片
可以看到hackme是在value属性里,所以可以先闭合标签然后写入XSS代码。
在抓包软件修改p3为hackme">就OK了。
XSS Challenges学习笔记_第6张图片

第五关

这一关只是把输入框的可输入长度个限制了,只需F12找到输入框input,更改其中的maxlength属性,同时也可以看到value里与相应的数据,所以参考第二关即可。

第六关

这一关,按照往常的思路,输数据,审查元素,闭合标签并加入代码,发现并不行的通,尖括号被转义了。
XSS Challenges学习笔记_第7张图片
这样的话,只能另辟蹊径了。既然不能输尖括号,那干脆就不闭合标签,再input属性里添加一个事件。
关于事件有很多种,JavaScript事件。
111" onmouseover="alert(document.domain)"

第七关

这一关直接输入上一关的代码,发现很多地方多了引号,onmouseover那里全部都称了字符串,怪不得执行不了
XSS Challenges学习笔记_第8张图片
所以反过来,把该去的引号去了即可。111 onmouseover=alert(document.domain)

第八关

这一关要用到JavaScript伪协议,输入的数据会直接显示在a标签里的href里,而javascript:这个特殊的协议类型声明了URL的主体是任意的JavaScript代码,它由JavaScript的解释器运行。
转自JavaScript中伪协议
所以可以直接输入javascript:alert(document.domain)

第九关

这一关进行了UTF-7编码,但其实UTF-7在一些浏览器里直接就进行了去除,所以这一关不做演示。
可以在Hint内部添加一个事件,来通关
XSS Challenges学习笔记_第9张图片
同理,前边所有关卡也都可以这样通关。

第十关

这一关进行了domian的过滤,可以采用双写绕过。
">"<
编码绕过
">
eval()函数用于计算JavaScript字符串,并作为脚本代码来执行。
atob()是将base64变为字符串。
注意:编码这个方法在这一关行不通。

第十一关

这一关发现,不仅很多事件的关键字被过滤,onclick被转义称onxxxx,而且script关键字也被转义,相应的JavaScript伪协议中也会被转义,但如果把JavaScript伪协议稍做修改就能成功。
空格绕过">xss

第十二关

这一关发现尖括号以及引号都被过滤,这样没办法闭合了。这次要用到IE浏览器的特性,就是两个反引号Tab键上边的建可以闭合一个引号,所以可以直接构造语句`` οnmοuseοver=“alert(document.domain)”

第十三关

后续还会再更新

你可能感兴趣的:(XSS)