xss-labs第三关
作者:互联网
第三关
老套路,有输入框进行输入随意值查看返回,然后在输入xss注入语句。
没结果,首先查看网页端源码进行分析。根据结果得出这次是真的过滤了尖括号。
那我们尝试第二关的方法,进行闭合value参数看看。
依旧是没有结果,继续查看网页源码。我们可以发现,闭合value属性这个方法是可行的,但是后面执行<script>alert(1)</script>语句的尖括号还是被过滤了。
这时我们可以换一个思路,首先xss的全名是Cross Site Scripting(跨站脚本攻击)。script标签只是为了达成xss攻击这个目的一个小小的手段,我们为了达成xss攻击这个可以有多个手段。比方说使用其他属性的语句,然后属性的值是javascript的伪协议(javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行)或者使用一些属性,属性里面运行alert(1)弹框语句。
可以构造如下的payload(ps:onmouseover 属性在鼠标指针移动到元素上时触发。)
' onm ouseover=javascript:alert(1) '
或者构造
' onm ouseover='alert(1)
都可以完成攻击。
攻击成功,查看下网页端的源码。成功闭合构造onmouseover属性
我们在查看后端源码分析。使用了htmlspecialchars函数过滤输入。
我们来看看这个函数的功能
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
- & (和号)成为 &
- " (双引号)成为 "
- ' (单引号)成为 '
- < (小于)成为 <
- > (大于)成为 >
过滤了一些符号,但是我们这边在闭合后使用其他属性语句突破,压根就没有使用尖括号。
总结:面对一些过滤的时候,我们可以换个思路使用其他标签或者属性来绕过从而达到xss攻击这个目的。
标签:xss,javascript,alert,labs,源码,onmouseover,第三关,属性 来源: https://www.cnblogs.com/asoh/p/15021728.html