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

    第三章 CSRF跨站请求伪造

    1.CSRF漏洞概述及原理

     

     

     

     

     

    2.通过CSRF进行地址修改

      我们先随便登录一下试试看,同时后台打开burp suite进行抓包

     

     

     

       我们登录一下,随便修改一个信息并提交,看看后台的抓包。

       我们可以看到,get请求是向后台发送了所有的参数。在这个里面我们并没有看到CSRFtoken,说明后台没有做防CSRF的措施。

      我们来构造一下语句,把地址改成shanxi,补全语句。

      再打开一个页面,访问一下

       在敲下回车的一刹那,她的浏览器就是以她当前的登录状态向后台发送了一个请求。实际上这个时候她的信息已经被改掉了。刷新一下之前的页面

       成功修改

      POST型的

      还是登录一下

     

     

     

       把地址改为beijing

       这个是post请求,所有的参数是在请求体里传出的。所以无法通过url去伪造请求。

      这个时候,需要我们跟之前一样,就建一个站点,在这个站点上做一个表单,然后让lucy去点击这个恶意站点的表单的url。通过这个url向存在CSRF漏洞的页面发送post请求。

    3.token详解及常见防范措施

     

       原理:当年每次去请求这个个人信息修改的页面时,后台就会去调用这个函数,先查看SESSION里面有没有token,如果有先销毁掉,然后去生成一个新的token,然后复制到SESSION里。这样就是实现了每当刷新这个页面时,都会生成一个新的token,把老的token销毁掉,然后把这个新的token放到筛选里,目的是为了下次提交请求过来的时候,进行对比。

      场景演示:

     

     

     

      看抓包情况

       这个请求部分,唯一跟之前不一样的就是多出来一个token部分

      那么,后端生成token后,前端如何拿到token,以及如何提交到后端进行认证。

      我们来打开这个检查器,来看一下

       当我们每次点击这个修改个人信息时,进入的这个页面,就会去访问token_get_edit.php这个文件。只要一访问,这个文件就会生成一个token

      那这个token echo到前端时,放在了哪里?查看一下整个表单

       这个是被隐藏的。每次点提交,这个token会被同时提交到后台。后台会对这个token进行验证,如果跟当前生成的筛选里面的token相等,就可以提交。否则不会。

      查看一下后端代码

     

     

  • 相关阅读:
    LF Filed Control
    《C++反汇编与逆向分析技术揭秘》——流程控制语句的识别
    《C++反汇编与逆向分析技术揭秘》——观察各种表达式的求值过程
    项目笔记---图片处理
    项目笔记---压缩方式
    Visual Studio 使用调试技巧
    温故知新---重读C#InDepth(二)
    温故知新---重读C#InDepth(一)
    SQL笔记---多表左联
    SQL笔记---分页
  • 原文地址:https://www.cnblogs.com/zhaihuijie/p/12633145.html
Copyright © 2011-2022 走看看