XSS攻击脚本的构造

一、绕过XSS-Filter

用户提交信息时,系统的XSS Filter会对所有的输入进行校验,如果检测到黑名单列表中的数据,便会进行拦截、编码和过滤等处理。

1、利用HTML标签属性值

2、空格、回车、Tab

若XSS Filter仅把敏感的字符列入黑名单处理,则可以利用空格、回车和Tab键拆分输入的字符,来绕过限制。
原因:JavaScript语句通常以分号结尾,如果JavaScript引擎确定一个语句是完整的,而这一行的结尾有换行符,那么就可以省略分号。

3、对标签属性值进行转码

-将输入字符通过ASCII码进行转码,来避免XSS Filter过滤
-HTML属性值支持ASCII编码形式
-示例:t的ASCII值为116,则用“&#116”表示

4、利用事件

5、利用CSS样式表

-缺点:不同浏览器或者同一浏览器不同版本之间有可能不通用
-可以使用expression执行JavaScript代码
-可以使用@import直接执行JavaScript代码,例如:

<style>
    @import 'javascript:alert("XSS")';
</style>

-JavaScript脚本通常嵌入到style标签/属性中
-style属性可以配合任意HTML标签使用

扰乱过滤规则

-大小写转换
-不使用引号,或改用单引号
-在使用CSS中的expression执行XSS脚本时,可以构造不同的全角字符来扰乱过滤规则

<xss STYLE="xss:expression(alert('XSS'))">

-使用注释字符
-样式标签中,\和结束符\0也是被浏览器忽略的

二、利用字符编码

三、输入字符长度有限制时,可以拆分XSS脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值