XSS绕过和防御总结

您所在的位置:网站首页 xss起到防御的方案 XSS绕过和防御总结

XSS绕过和防御总结

2023-12-02 05:57| 来源: 网络整理| 查看: 265

绕过

1 < >被过滤的情况下

可以根据标签构造一些事件触发       或者进行编码

如: "  οnclick="alert(0)    前一个”为闭合标签属性的“

        "  οnmοuseοver="alert(0) 

        "  οnerrοr="alert(0) 

        "  autofocus οnfοcus=“alert(0) 

2 如果script和on被替换成 “ ” 空可以双写绕过; 如果script或者on被替换成sc_ript ,   o_n则可以考虑进行编码 或者 其他属性或标签; 如果没有进行大小写验证可以使用大小写绕过,如SCript

3 alert被过滤的情况下 可以尝试编码;另外promp和confrm也可以弹窗 (firefox可 ,chrome不行) M 4 on事件被过滤的情况下 < button formaction=javascript:alert(1)> M XSS XSS       ( IE6以下可) 1          (firefox可 , chrome不可) 可以执行js的属性: formaction action href xlink:href src content data

5其他 标签和属性之间并不是只能出现空格   有时候并不需要一个合法的标签    M

如果对空格进行过率可以使用%0a代替  

防御

1.阻止恶意代码注入 2.阻止恶意操作执行 不管是反射型还是存储型xss ,都能通过服务端过滤进行防御: ● 黑名单:过滤特殊符号及字符 如. %、#、/、"、'、;、 (、 )、script. svg、 img 、herf、data、a、object、 on事件等 ●白名单:只允许特定类型或符号 根据输入的数据特征限制使用的类型,如年龄限制为数字类型;输入类型为字符型限制为仅可使用大小写的26个字母及数字及-和_ ;等

●编码及转义 输出在标签或属性中进行HTML编码; 输出在script标签或事件中进行JavaScript编码; 输出在url中进行ur|编码。 ●cookie中设置httponly setcookie将httponly选项设置为true ,防范cookie劫持 ●确保执行脚本来源可信 开发者明确告诉客户端,哪些外部资源可以加载和执行( CSP策略) ●不使用有缺陷的第三方库

PHP : htmlentities()、htmlspecialchars() Python : cgi.escape() ASP : Server.HTMLEncode() ASP.NET : Server .HtmlEncode()、Microsoft Anti-Cross Site Scripting Library Java : xssprotect(Open Source Library) Node.js : node-validator htmlspecialchars默认配置是不过滤单引号的。只有设置了: quotestyle选项为ENT_ QUOTES才 会过滤单引号。.  



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3