xss简介

xss攻击者构造恶意信息然后在用户的浏览器上执行,主要分为反射性xss,这种主要是某个页面存在有漏洞的参数,然后填上恶意参数把整个链接发给用户或者管理员,他们点击了带有恶意参数的链接就会执行恶意代码,可能会造成cookie泄露以及浏览器保存的各种重要数据的泄露等,也可能会冒充用户身份进行非法操作。还有存储型xss,就是用户可以自己构造信息并且会被显示在页面上面,比如发表评论就是会被存在数据库中,然后其他用户也能看到你发的评论信息,或者你的个人信息,也会被保存同时别人也能看到这些信息,要是没有对用户输入进行过滤或者编码转义等操作,那用户可以构造任意js代码并且任何浏览这个页面的用户都会中招。还有就是dom型xss,这个特点是不会经过网站服务器,是直接浏览器执行恶意的xss代码。

xss绕过

xss防护的最好办法就是编码,你输入的尖括号就实体编码,就基本没法构造标签了(特殊情况除外,比如svg标签外),又或者输出的值在value等属性里,那就对引号进行url编码操作,又或者直接进行白名单过滤,只允许数字字母和短横线,这些方法都是比较粗暴简单也是比较安全的,当然在有些业务需求下面并不适用,有的时候会需要输入特殊符号,那就只能进行严格的黑名单过滤,这种的话一定要把所有危险的字符串都过滤掉才行。

有的网站开发者并不清楚自己是否过滤了所有可能的危险字符,就直接使用waf,比如安全狗,当然这也不是完全安全的,存在很多绕过方法,比如双写大小写(实战基本用不到),使用其他标签(黑名单不一定能过滤完),以及利用特殊属性或者事件下的编码绕过等。比如<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>,编码不是任何地方都能用,因为浏览器解析的顺序是:html对服务器相应的二进制数据进行解析产生html源代码,然后根据源代码产生dom树,此时实体编码的数据是无法被识别的(实体编码防护xss的原理),然后html解析器根据dom树来进行下一步解析工作,解析<script>等标签,在处理标签内部信息以及src,href等属性时,若是js伪协议则会出发js解析器进行解析,因此编码绕过要看内容被输出的环境来利用。

xss学习笔记(萌新版)的更多相关文章

  1. XSS学习笔记(四)-漏洞利用全过程

    <script type="text/javascript" reload="1">setTimeout("window.location ...

  2. XSS学习笔记(一个)-点击劫持

    所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...

  3. XSS学习笔记(五)-XSS防御

    如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...

  4. 【转载】XSS学习笔记

    XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...

  5. XSS学习笔记

    本片文章是读<<XSS跨站脚本gj剖析与防御>>一书的总结 常见的XSS攻击主要用于1.网络钓鱼,盗用用户账号2.窃取cookies 非httponly情况下,读取docume ...

  6. 2019-11-20:xss学习笔记

    xxe漏洞防御使用开发语言提供的禁用外部实体的方法phplibxml_disable_entity_loader(true); 卢兰奇对象模型,bom由于现代浏览器实现了js交互性方面的相同方法和属性 ...

  7. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  8. Web For Pentester 学习笔记 - XSS篇

    XSS学习还是比较抽象,主要最近授权测的某基金里OA的XSS真的实在是太多了,感觉都可以做一个大合集了,加上最近看到大佬的博客,所以这里我也写一个简单的小靶场手册,顺带着也帮助自己把所有XSS的方式给 ...

  9. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

随机推荐

  1. 一例智能网卡(mellanox)的网卡故障分析

    一例智能网卡(mellanox)的网卡故障分析 背景:这个是在centos 7.6.1810的环境上复现的,智能网卡是目前很多 云服务器上的网卡标配,在oppo主要用于vpc等场景,智能网卡的代码随着 ...

  2. PerfView专题 (第九篇):洞察 C# 中的 LOH 内存碎片化

    一:背景 在 内存泄漏 的系列问题中,有一类问题是 内存碎片化 导致的,而且这种更容易发生在 LOH 上,因为它默认不开启 对象压缩,一般遇到这种情况,优先让朋友执行下面的代码应急. GCSettin ...

  3. 微软Azure配置中心 App Configuration (二):Feature Flag 功能开关特性

    写在前面 Web服务开发过程中我们经常有这样的需求: 某些功能我必须我修改了配置才启用,比如新用户注册送券等: 某个功能需到特定的时间才启用,过后就失效,比如春节活动等: 某些功能,我想先对10%的用 ...

  4. openstack中Nova组件简解

    一.Nova组件概述 计算节点通过Nova Computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信. Nova位于Openstack架 ...

  5. Linux虚拟机报错grub rescue解决步骤

    /boot 分区内核文件丢失 实验准备 1) 准备:rm -rf /boot/* 2) 系统启动报错截图 修复步骤 重启显示logo时 按 Esc,选择从光驱启动 或者关机再选择打开电源时进入固件 移 ...

  6. Android平台Camera2数据如何对接RTMP推流到服务器

    1. Camera2架构 在Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用 ...

  7. Gitea 1.17.2 | 带来视觉提升、完善资源校验、加强安全性等42项优化

    Gitea 1.17.2 合并了 42 个 Pull Request,现已正式发布,我们建议所有用户升级到此版本.您可以到阅读原文了解更详细的介绍. 致谢:@zeripath 为 Gitea 贡献了诸 ...

  8. Go常见

    GO基础语法 方法或函数调用时,传入参数一般都是值复制,除非是map.slice.channel.指针类型是引用传递 短的变量声明(Short Variable Declarations),即自动推导 ...

  9. Python 第五次实验

    [1] (程序设计)编写程序,将二维列表数据写入 CSV文件(命名为"out.csv"),用逗号隔开.二维列表如下:[['Name','Age','Gender'], ['Bob' ...

  10. Windows Powershell 对于布尔值的处理

    Windows PowerShell中有很多场景需要输入0或者1作为命令的参数.Powershell对于布尔值的逻辑处理究竟是怎样的呢?除了最常用的$True, $False, 1, 0.对于要求输入 ...