【XSS-Labs】关卡 1-5

Level 1

界面如下:
【XSS-Labs】关卡 1-5_第1张图片
直接在url中输入脚本代码:,成功执行
在这里插入图片描述
POC:

<script>alert(1)script>

Level 2
【XSS-Labs】关卡 1-5_第2张图片
在输入框输入Script代码,显示为文本
【XSS-Labs】关卡 1-5_第3张图片
查看源代码,发现位于input标签内
在这里插入图片描述
尝试闭合,成功执行
【XSS-Labs】关卡 1-5_第4张图片
POC:

"> <script>alert(1)script>

Level 3
【XSS-Labs】关卡 1-5_第5张图片
查看源码,发现对" 、 < 、 >进行了HTML实体编码
在这里插入图片描述
因此在第三关的绕过就不能直接使用调用JavaScript脚本的方式,可以采用input标签内的事件来绕过。


一些常用事件如下:

  • onfocus 当input 获取到焦点时触发
  • onblur 当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候会触发相应的js
  • onchange 当input失去焦点并且它的value值发生变化时触发
  • onkeydown 在 input中有键按住的时候执行一些代码
  • onkeyup 在input中有键抬起的时候触发的事件,在此事件触发之前一定触发了onkeydown事件
  • onclick 主要是用于 input type=button,当被点击时触发此事件
  • onselect 当input里的内容文本被选中后执行一段,只要选择了就会触发,不是非得全部选中
  • oninput 当input的value值发生变化时就会触发,不用等到失去焦点(与onchange的区别)

使用格式为:,本次采用onfoucs进行绕过,当鼠标聚焦时即可成功。


输入:' onfoucs='alert(1),单引号用于闭合
【XSS-Labs】关卡 1-5_第6张图片
POC:

' οnfοcus='alert(1)

Level 4

输入"aaa<>来观察编码情况,发现依然进行了编码
在这里插入图片描述
继续使用第三关的input事件来绕过," onfocus="alert(1),成功执行
【XSS-Labs】关卡 1-5_第7张图片
POC:

" οnfοcus="alert(1)

Level 5

尝试第四关的方法,不可以,查看源码
在这里插入图片描述
发现源码中对 on 做了转换过滤,转换为 o_n,尝试了大小写,失败,因此需要再次更换绕过思路

输入<>尝试发现可以成功执行
在这里插入图片描述
因此尝试进行伪链接绕过,先制造百度链接,成功
【XSS-Labs】关卡 1-5_第8张图片
使用JavaScript解析:

"> <a href="javascript:alert(1)">linka>

成功执行
【XSS-Labs】关卡 1-5_第9张图片
POC:

"> <a href="javascript:alert(1)">linka>

总结:

  • 关卡1:无过滤
<script>alert(1)script>
  • 关卡2:需要闭合标签
"> <script>alert(1)script>
  • 关卡3:对特殊符号进行了html实体编码,因此需要采用不使用这些特殊符号的绕过方式,如使用input标签的触发事件函数。
' οnfοcus='alert(1)
  • 关卡4:同关卡3,仅闭合符号有单引号变为双引号
" οnfοcus="alert(1)
  • 关卡5:将on替换成了o_n,因此触发事件不可再用,使用a标签构造伪链接
"> <a href="javascript:alert(1)">linka>

你可能感兴趣的:(#,XSS-Labs)