XSS构造剖析

1.利用<>标记注射Html/Javascript

如果用户可以使用<>等标记,可以使用<script>标签注入

<script>alert('xss')</script>

2.利用HTML标签属性值执行XSS

不能自己构造HTML标签,可以使用已有的HTML标签的属性值。很多HTML标签属性值都支持javascript:[code]的伪协议的形式

<form action="javascript:alert('xss')">
        <input type="submit" value="提交">
    </form>

 

 

 

 

 过滤javascript等关键字,可以防御基于属性值的xss

3.空格回车Tab

使用关键字拆分的技巧,JavaScript除了在引号中分割单词或强制结束语句之外,额外的空白无论以何种方式添加都无所谓

 

 

 

 

4.对标签属性值转码

HTML属性值本身支持ASCII码的形式

<form action="javascrip&#116&#58alert('xss')">
        <input type="submit" value="提交">
    </form>

t的ASCII的值是116,用"&#116"表示,:则表示为&#58;

为了防范利用HTML标签属性编码的xss,最好也过滤&#\等字符

5.产生自己的事件

JavaScript与HTML之间的交互是通过事件来实现的,而响应事件的函数就叫做事件处理函数

<input type="button" onclick="alert('xss')" value="clcik me">

 

posted @ 2020-09-15 18:47  kalistabc  阅读(289)  评论(0编辑  收藏  举报