精华内容
下载资源
问答
  • web 安全 XSSCSRF

    2021-01-21 21:05:53
    DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。 1.4 XSS的防御 预防DOM型 XSS 攻击 写...

    一、XSS(跨站脚本攻击)

    1.1 什么是 XSS

    Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。

    本质:
    用户提交的数据未经过滤,渲染到了HTML上,结果被浏览器当成了代码,浏览器无法分辨哪些代码是可信的,导致恶意代码被执行。

    注入的入口

    • 来自用户的 UGC 信息
    • URL 参数
    • POST 参数
    • Referer
    • Cookie
    • UA

    在部分情况下,由于输入的限制,注入的恶意代码比较短。但可以通过引入外部的js文件,并由浏览器执行,来完成比较复杂的攻击策略

    总结
    当需要把某些数据渲染到HTML上,但是这些数据是由用户决定的,这时候就有可能受到XSS攻击

    1.2 XSS的危害

    攻击者能够在用户的页面上运行恶意 JS ,就相当于取得了整个页面的浏览器上的控制权,攻击者通过XSS干的事情包括但不限于以下:

    1. 获取用户敏感信息。监听表单输入,获取cookie等

    2. 冒充用户发起操作请求。在恶意脚本中利用用户的登录状态进行货币、物品等转账,更改权限管理等

    3. 钓鱼。弹窗,或改造页面外观,引导用户输入其他网站的敏感信息

    4. 挖矿。占用CPU,消耗资源

    5. 发起DOS攻击。所有被XSS的用户对某个目标发起资源请求。

    6. XSS 蠕虫。如果是社交平台的XSS,在恶意脚本中利用用户的登录状态进行关注、发状态、发私信等操作,发出的状态和私信可再带上攻击 URL,诱导更多人点击,不断放大攻击范围。

    1.3 XSS的分类

    根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种

    1.3.1 存储型 XSS

    存储型 XSS 的攻击步骤:

    1. 攻击者将恶意代码提交到目标网站的数据库中。
    2. 用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
    3. 用户浏览器接收到响应,恶意代码也被执行。

    这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。

    1.3.2 反射型 XSS

    反射型 XSS 的攻击步骤:

    1. 攻击者构造出特殊的 URL,其中包含恶意代码。
    2. 用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
    3. 用户浏览器接收到响应后,恶意代码被执行。

    反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。

    反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。

    由于需要用户主动打开恶意的 URL 才能生效,攻击者往往会结合多种手段诱导用户点击。

    1.3.3 DOM 型 XSS

    DOM 型 XSS 的攻击步骤:

    1. 攻击者构造出特殊的 URL,其中包含恶意代码。
    2. 用户打开带有恶意代码的 URL。
    3. 用户浏览器接收到响应后,前端代码将URL中的数据插入到了dom中,或者在js中进行了eval等操作,恶意代码被执行。

    DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。

    1.4 XSS的防御

    预防DOM型 XSS 攻击
    写原生JS时,一定不要把不可信的数据通过 innerHTMLouterHTMLdocument.write渲染在页面上。尽量使用textContentsetAttribute等。如果使用Vue/React 技术栈,避免使用v-html/dangerouslySetInnerHTML。DOM的内联事件,a标签的href,JS中的eval,setTimeout,setInterval等都会把字符串作为代码运行,一定不要把不可信的字符串拼接或传递给这些API

    1.5 XSS的检测

    手动检测

    jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
    

    攻击者注入的内容通常称为payload,上面就是一个很好用的payload,它能够检测到存在于 HTML 属性、HTML 文字内容、HTML 注释、跳转链接、内联 JavaScript 字符串、内联 CSS 样式表等多种上下文中的 XSS 漏洞,也能检测 eval()setTimeout()setInterval()Function()innerHTMLdocument.write() 等 DOM 型 XSS 漏洞,并且能绕过一些 XSS 过滤器

    漏扫工具

    除了手动检测之外,还可以使用自动扫描工具寻找 XSS 漏洞,例如AWVSArachniw3af


    二、CSRF

    2.1 什么是CSRF

    CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的

    一个典型的CSRF攻击有着如下的流程:

    • 受害者登录a.com,并保留了登录凭证(Cookie)。
    • 攻击者引诱受害者访问了b.com。
    • b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.com的Cookie
    • a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。
    • a.com以受害者的名义执行了act=xx。
    • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。
    2.2 CSRF 防御
    2.2.1 同源检测

    CSRF大多来自第三方网站,直接禁止外域(或者不受信任的域名)对我们发起请求。通常做法是对请求头中的Referer进行检测,这个内容前端 JS是无法修改的

    这种方法显而易见的好处就是简单方便。然而,Referer的值是浏览器提供的,虽然HTTP 协议有明确的要求,但是浏览器的实现可能有差别,还可能有漏洞,比如 IE6 和 FF2 中就可能被篡改Referer

    另外,有的浏览器中用户可以手动关闭Referer的发送,这种情况下,用户的请求是正常的请求,但是请求中没有Referer,而攻击者也可以伪造没有Referer的请求。如果把没有Referer的请求封掉就会存在误封

    最后,如果攻击者的请求本身就是从本域发起的(比如在留言,评论处引入img元素),这种依赖同源检测来防范 CSRF 的方式就会失效。

    总结

    针对CSRF攻击,同源检测非常方便,而且很大程度上可以起到防御的作用。但是会对没有Referer的请求存在误封,无法防御用户使用存在Referer篡改漏洞浏览器时被攻击的情况,以及对于本域发起的 CSRF 无法防范。

    2.2.2 CSRF Token

    CSRF 攻击之所以能成功,是因为浏览器向一个域名发送请求时,会自动带上这个域名下的cookie。攻击者冒用了域名下的cookie,但是攻击者本身是没法知道cookie的具体数值

    所以,对用户身份的验证不能只能验证请求的cookie,服务端规定在请求体或者请求头中,需要带上一个特殊字符串,服务端对这个特殊的字符串验证其合法性,这个字符串就叫 CSRF Token

    CSRF Token的实现有以下几种方式:

    1. 服务端针对每个用户生成一个 token 并存储在Session中,浏览器请求页面时,在cookie或者页面某处插入此token,前端拿到token后,无论是ajax,还是表单提交都需要在请求头或者请求体或者请求参数中携带此token,服务端接收请求时将请求中的 token 和Sesssion中的token比对,一致则通过。

    2. 服务端对每个用户生成一个 token,把token当作cookie设置在浏览器中,前端将此cookie取出后,每次发请求时添加到请求头或者请求体或者请求参数中,服务端接收请求时将cookie中的token和请求头或者请求体或者请求参数中的token比对,一致则通过。

    展开全文
  • Web安全XSSCSRF

    2018-03-21 13:01:26
    XSS跨站脚本攻击 它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。三种类型:反射型、存储型、DOM型。攻击:1、注入...

    XSS跨站脚本攻击

        它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。三种类型:反射型、存储型、DOM型。

    攻击:

    1、注入代码可盗取用户信息、cookie;

    2、注入代码实现页面跳转,导航到恶意网站;

    3、破坏页面结构

    防御:

            对数据进行Html Encode 编码处理;

            避免使用eval、new Function等可执行字符串解析的方法;

            过滤或移除特殊的Html标签, 例如: <script>, <iframe> ,  &lt; for <, &gt; for >, &quot for;

      过滤JavaScript 事件的标签。例如 “οnclick=”, “onfocus” 等等。


    CSRF跨站请求伪造

        CSRF 是伪造请求,冒充用户在站内的正常操作

    攻击:http://blog.csdn.net/stpeace/article/details/53512283

    防御 :

        验证 HTTP Referer 字段,判断请求来源是否可靠;

        在请求地址中添加 token 并验证,实现鉴权判断;

        添加session会话失效时间;

        提交验证码。


    其他web安全

    DDOS原理及防护、钓鱼网站、验证码暴力破解


    展开全文
  • Web安全XSS&CSRF

    2016-05-24 18:20:50
    XSS xss(Cross Site Scripting)跨站脚本攻击,发生在目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生 本质含义: 指攻击者通过“HTML注入”...

    XSS

    xss(Cross Site Scripting)跨站脚本攻击,发生在目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生

    本质含义:

    指攻击者通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击过程。
    或者这样解释:还是一种“HTML注入”,用户的数据被当成了HTML代码的一部分来执行,从而混淆了原有的格式

    XSS攻击类型

    1.反射型XSS(非持久型)
    发出请求时,XSS代码出现在URL中,作为输入提交到服务端,服务端解析后响应,在响应内容中出现这段XSS代码,最后浏览器解析执行。这个过程就像一次反射,所以称为反射型XSS
    例如:
    http://www.foo.com/xss/reflect1.php的代码如下

    <?php
        echo $_GET['x'];
    ?>

    输入x的值未经过任何过滤就直接输出,可以提交:
    http://www.foo.com/xss/reflect1.php?x=<script>alert(1)</script>
    服务器端解析时,echo就会完整的输出<script>alert(1)</script>到响应体中,然后浏览器解析执行触发

    反射型xss是一次性的

    2.存储型XSS(持久型)
    存储型xss和反射型xss的差别仅在于:提交的xss代码会存储在服务端(不管是数据库,还是文件系统,内存等),下次请求目标页面时不用再提交xss代码
    特点:
    1. 攻击行为伴随攻击数据一直存在
    2. 存储型xss的攻击是最隐蔽的
    例如:
    留言板xss,用户提交一条包含xss代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容就会从数据库查询出来并显示,浏览器发现有xss代码就当做正常的HTML与JS执行,于是就触发了xss攻击

    3.DOM XSS
    DOM XSS和反射型xss存储型xss的差别在于,DOM XSS的xss代码并不需要服务器解析响应的直接参与,触发xss靠的就是浏览器的DOM解析可以认为完全是客户端的事情

    常见的输入点有:

    document.URL
    document.URLUnencoded
    document.location
    document.referrer
    window.location
    window.name
    xhrq请求回来的数据
    document.cookie
    表单项的值
    

    常见的输出项:

    直接输出的HTML内容,如:
    document.write(...)
    document.writeln(...)
    document.body.innerHTML=...
    直接修改DOM树(包括DHTML事件)如:
    document.forms[0].action=...(以及其他集合,如:一些对象的src/href属性等)
    document.attachEvent(...)
    document.create(...)
    document.execCommand(...)
    document.body,...(直接通过body对象访问DOM)
    window.attachEvent(...)
    

    这些都是javascript的基本点,从这些输入输出可以看到,DOM XSS的处理逻辑就在客户端

    XSS防御

    • Httponly,禁止javascript访问带有Httponly属性的cookie
    • 输入检查,格式检查,对特殊字符进行过滤编码
    • 输出检查,编码,转译
      原则
    • 尽可能的减少用户的可控变量在<style>标签,HTML标签、css文件
      中的输出
    • 一些危险标签过滤禁止掉,如<iframe>,<script>,<form>

      CSRF

      CSRF(Cross Site Request Forgery)跨站请求伪造

    • 跨站点的请求

    • 请求是伪造的

      本质:

      伪造合法用户身份

      CSRF类型

      1. HTML CSRF攻击
      2. JSON HiJacking攻击
        • 字典格式
        • 列表格式
      3. Flash CSRF攻击
        • 跨域获取隐私数据
        • 跨域提交数据操作

      CSRF防御

      1. 验证码
      2. referer check,referer告诉服务器从哪个链接请求过来的
      3. 在请求中添加Token,Token在客户端cookies,服务端session同时存放,再加以比较
      4. 禁止iframe的跨域请求
      5. X-Frame-option
        添加Token的
        1. 在session中绑定token
        2. 在form表单中加入token字段
        3. 在Ajax请求中自动添加token
        4. 对比服务端dession中token与post过来的是否一致
    展开全文
  • web安全CSRFXSS详解

    千次阅读 2020-02-22 21:18:34
    CSRFXSS CSRF CSRF (Cross Site Request Forgery)攻击,中文名:跨站请求伪造。 攻击原理:攻击者构造网站后台某个功能接口的请求地址,诱导用户去点击或者用特殊方法让该请求地址自动加载。用户在登录状态下这个...

    CSRF和XSS

    CSRF

    • CSRF (Cross Site Request Forgery)攻击,中文名:跨站请求伪造
    • 攻击原理:攻击者构造网站后台某个功能接口的请求地址,诱导用户去点击或者用特殊方法让该请求地址自动加载。用户在登录状态下这个请求被服务端接收后会被误以为是用户合法的操作。对于 GET 形式的接口地址可轻易被攻击,对于 POST 形式的接口地址也不是百分百安全,攻击者可诱导用户进入带 Form 表单可用POST方式提交参数的页面。
    • 防御措施:
      • Token验证
        • 服务端在收到路由请求时,生成一个随机数,在渲染请求页面时把随机数埋入页面(一般埋入 form 表单内,<input type="hidden" name="_csrf_token" value="xxxx">
        • Token放在Session中。
        • 当用户发送 GET 或者 POST 请求时带上_csrf_token参数(对于 Form 表单直接提交即可,因为会自动把当前表单内所有的 input 提交给后台,包括_csrf_token)
        • 后台在接受到请求后解析请求的cookie获取_csrf_token的值,然后和用户请求提交的_csrf_token做个比较,如果相等表示请求是合法的。
        • 客户端防范:对于数据库的修改请求,全部使用POST提交,禁止使用GET请求。
      • Referer验证
        • http头中有一个referer,记录http请求的来源地址,访问一个安全受限的页面的请求必须来自同一个网站。当用户要提交一个请求时,请求的referer值需是提交按钮(触发请求)所在的页面的URL。
      • 隐藏令牌
        • 请求头部添加token。在使用xhr请求的时候,可以添加一个自定义头部,里面包含token的数据。缺点:如果原系统并不是xhr请求的话,修改工作量非常巨大。

    XSS

    • XSS(Cross Site Scripting)攻击,中文名:跨站脚本攻击
    • 攻击原理:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
    • 防御措施:
      • 对特殊字符进行编码(对用户输入的数据进行HTML Entity编码)。不能对用户的所有输入保持原样,对特殊字符要进行HTML Entity编码。
      • 过滤用户输入的内容(特别重要)。原样显示内容的时候要过滤,把不合法的东西统统过滤掉,从而保证安全性。
      • 使用cookie的httpOnly属性,加上了这个属性的cookie字段,js是无法进行读写的。带有httpOnly的cookie用document.cookie是获取不到的。
    展开全文
  • WEB安全-csrfxss

    2019-09-25 16:06:19
    阐述csrfxss是什么以及防御方式。
  • 参考Web安全之SQL注入攻击技巧与防范总结 XSSCSRF 两种跨站攻击CSRF的攻击与防御CSRF 攻击的应对之道 一、SQL注入 用Web网站中常用的会员登录系统来做一个场景实例。如果输入正确的用户名 plhwin 和密码 ...
  • Web安全CSRFXSS

    2018-03-07 21:56:51
    CSRF 参考资料:... XSS 参考资料:https://www.imooc.com/learn/812 1. CSRF 基本概念和缩写 CSRF,通常称为跨站请求伪造,英文名Cross-site request forgery。 攻击原理 实现CSRF...
  • web安全CSRFXSS

    2018-10-29 21:32:47
    CSRF 1、CSRF的基本概念 CSRF(Cross-site request forgery):跨站请求伪造。 2、CSRF的攻击原理 用户是网站A的注册用户,且已登录,于是网站A就给用户下发cookie。之后用户打开网站B,网站B中含有恶意代码。...
  • Web安全CSRFXSS

    2019-05-14 09:34:55
    CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的...
  • 常见web安全XSSCSRF预防 近期玩了一下xss-game 一个测试使用XSS 的网站,好多都没做出来,最后还是靠搜索xss-game solution 来完成的,所以写写常见的web 安全的事。 日常开发比较少接触到安全,但不代表我们...
  • XSS 用户浏览器在浏览被攻击的网站时执行了网页上的特定脚本; Case A: HTML DOM <a href="/user/1">{{ user_name }} Exploit: <script>alert(1) Result: <a href="/user/1"><script>alert(1)</script></a> Case ...
  • Web 安全XSSCSRF

    2018-04-08 13:20:59
    目前web安全问题主要有下面几个: XSS漏洞 CSRF漏洞 XSS 跨站脚本攻击(Cross Site Scripting),攻击者往 Web 页面插入恶意的 Script 脚本代码,当用户访问页面的时候,嵌入的脚本代码就会执行,这样,...
  • web安全XSSCSRF

    2019-06-23 23:21:10
    根据《图解http》一书关于web攻击的介绍,攻击的模式有两大类,主动攻击与被动攻击 主动攻击: 主要针对服务器上的资源...被动攻击中最常见的两种攻击方式是XSSCSRF: xss(cross-site-scripting):跨站脚本攻击...
  • XSS攻击:跨站脚本攻击,XSS攻击是Web攻击中最...可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全...
  • WEB安全 - XSSCSRF

    2019-10-06 19:49:01
    https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/ https://en.wikipedia.org/wiki/Cross-site_request_forgery http://itindex.net/detail/47892-csrf-%E5%88%A9%E7%94%A8-%E6%96%B9...
  • web安全XSSCSRF

    千次阅读 2019-02-09 17:01:33
    XSS XSS 简单点来说,就是攻击者想尽一切办法将可以执行的代码注入到网页中。 分为反射型和持久型 反射型 XSS代码出现在URL中,服务端解析响应后,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。 ...
  • 安全漏洞 : XSS CSRF

    2017-04-27 14:30:00
    XSS成因概括 :  XSS其实就是Html的注入问题,攻击者A的输入没有经过严格的控制进入了数据库,最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行Html代码,  数据流程如下:攻击者的Html...
  • Web安全- XSSCSRF

    2019-02-18 23:04:44
    web安全三要素:CIA 机密性,完整性,可用性
  • 整理面经的时候好多前端的面经里面都有和 web 安全相关的内容,所以就详细了解了一下,但是这几次面试其实都没有问到,今天晚上也问了面试官虽然 XSSCSRF 和前端安全相关,但是其实前端能做的并不多,最多只是对...
  • web安全CSRFXSS

    2018-12-29 18:24:00
    web端的安全攻击有CSRFXSS两种,将通过以下三个方面介绍这两种安全攻击:  1、基本概念和缩写  2、攻击原理  3、防御措施 CSRF  1、基本概念和缩写  CSRF(Cross-site request forgery)跨站请求...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,042
精华内容 416
关键字:

web安全xsscsrf