Web安全原理剖析(十七)——XSS常用语句及编码绕过


五、XSS进阶

5.1 XSS常用语句及编码绕过

  XSS常用的测试语句有:

  • <script>alert(1)</script>

  • <img src=x onerror=alert(1)>

  • <svg onload=alert(1)>

  • <a href=javascript:alert(1)>

  常见的XSS的绕过编码有JS编码、HTML实体编码和URL编码。

  1. JS编码

  JS提供了四种字符编码的策略,如下所示。

  • 三个八进制数字,如果个数不够,在前面补0,例如“e”的编码为“\145”。

  • 两个十六进制数字,如果个数不够,在前面补0,例如“e”的编码为“\x65”。

  • 四个十六进制数字,如果个数不够,在前面补0,例如“e”的编码为“\u0065”。

  • 对于一些控制字符,使用特殊的C类型的转移风格(例如\n和\r)。

  1. HTML实体编码
  • 命名实体:以&开头,以分号结尾的,例如“<”的编码是“&lt;”。
  • 字符编码:十进制、十六进制ASCII码或Unicode字符编码,样式为“&#数值;”,例如“<”可以编码为“&#060;”和“&#x3c;”。
  1. URL编码

  这里的URL编码,也是两次URL全编码的结果。如果alert被过滤,结果为%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34。

  在使用XXS编码测试时,需要考虑HTML渲染的顺序,特别是针对多种编码组合时,要选择合适的编码方式进行测试。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容