美文网首页web攻击
你应该知道的那些Web攻击技术

你应该知道的那些Web攻击技术

作者: 7天苹果 | 来源:发表于2017-07-23 16:35 被阅读226次

    XSS攻击

    那 XSS 是什么呢?一言蔽之,XSS 就是攻击者在 Web 页面中插入恶意脚本,当用户浏览页面时,促使脚本执行,从而达到攻击目的。XSS 的特点就是想尽一切办法在目标网站上执行第三方脚本。

    XSS 主要有三种类型:

    • 存储型 XSS: 注入的脚本永久的存在于目标服务器上,每当受害者向服务器请求此数据时就会重新唤醒攻击脚本;

    • 反射型 XSS: 当用受害者被引诱点击一个恶意链接,提交一个伪造的表单,恶意代码便会和正常返回数据一起作为响应发送到受害者的浏览器,从而骗过了浏览器,使之误以为恶意脚本来自于可信的服务器,以至于让恶意脚本得以执行。

    • DOM 型 XSS: 有点类似于存储型 XSS,但存储型 XSS 是将恶意脚本作为数据存储在服务器中,每个调用数据的用户都会受到攻击。但 DOM 型 XSS 则是一个本地的行为,更多是本地更新 DOM 时导致了恶意脚本执行。

    防御

    • 对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。
    • 对标签进行转换比如用户输入:
    <script>window.location.href=“http://www.baidu.com”;</script>
    

    在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。

    • 设置 HTTP Header: "X-XSS-Protection: 1"

    CSRF攻击:跨站请求伪造

    1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
    2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
    3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
    4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
    5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
    图片来自于网络

    从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

    1.登录受信任网站A,并在本地生成Cookie。

    2.在不登出A的情况下,访问危险网站B。

    防御

    • 将cookie设置为HttpOnly
      Set-Cookie:cookiename=value;HttpOnly
    • 增加token
      表单中增加一个隐藏域,提交时将隐藏域提交,服务端验证token。
    • 通过referer识别
      根据Http协议,在HTTP头中有一个字段交Referer,它记录了HTTP请求的来源地址。如果攻击者要实施csrf攻击时,必须从其他站点伪造请求,当用户通过其他网站发送请求时,请求的Referer的值是其他网站的网址。因此可以对每个请求验证其Referer值即可。

    相关文章

      网友评论

        本文标题:你应该知道的那些Web攻击技术

        本文链接:https://www.haomeiwen.com/subject/byrmkxtx.html