zoukankan      html  css  js  c++  java
  • web安全—浏览器的进制

    浏览器的进制

    字符的ascii码值可以转化为进制形式。可以用来绕过XSS filter。
    1. HTML属性值中的进制使用 。十进制使用&#97(字符a); 表示,&#作为前缀,;作为后缀,后缀也可以没有。
      如果要使用十六进制表示,则使用a
      1 <img  src=@ onerror=&#x61;lert&#40"\u6211"&#41; />

      会自动解析为:

      <img src="@" onerror="alert(&quot;\u6211&quot;)">
       
    2. css属性名和属性值中的进制使用。完全兼容HTML的进制表示方式,另外可以使用\ 作为16进制数值前缀。
      使用\ 16进制形式时属性名和属性值之间的:的冒号要保留。
      比如
      <style>
      a{ background:red; }
      </style>

      可以用\ 16进制表示

      1 <style>
      2 a{  \62\61\63\6b\67\72\6f\75\6e\64:\0072\0065\0064; }
      3 </style>
    3. javascript字符串中的进制使用。八进制用\56表示,十六进制用\x5c表示,多字节字符编码只能用十六进制Unicode编码,表现形式为:\u6211
      document.write("<\x69mg src=@ onerror=\x61lert(\"\u6211\51\"\51 />");

      执行的时候会自动解码为 

      <img src=@ onerror=alert("我") /> 
  • 相关阅读:
    线程同步
    毕业答辩
    论文查重
    shell无名管道线的实现(父子进程实现对管道的一端读另一端写)
    并查集
    操作系统中的fork()函数对应的进程创建过程
    柠檬水找零问题
    环形链表
    删除排序数组中的重复项
    关于两数之和的算法
  • 原文地址:https://www.cnblogs.com/xuntu/p/3651966.html
Copyright © 2011-2022 走看看