zoukankan      html  css  js  c++  java
  • CSRF跨站请求伪造

    1、CSRF跨站请求伪造

    1.1 CSRF漏洞概述

    1)在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般为一个链接)然后欺骗用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了。所以CSRF攻击也被称为“one cilck”攻击

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

    3)如何确定一个web系统存在CSRF漏洞

    *对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造

    --比如修改管理员账号,并不需要验证旧密码,导致请求容易被伪造

    --比如对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造

    *确认凭证的有效期(这个问题会提高CSRF被利用的概率)

    --虽然推出或者关闭了浏览器,但是cookie仍然有效,或者session并没有及时过期,导致CSRF攻击变得简单

    1.2 CSRF(get/post)实验演示和解析

    1getcsrf演示

    *get型的csrf漏洞所包含的信息都在url里,所以,我们只要可以获取到目标用户的url,就能对其信息进行修改,但同时还要保障的是,用户此时必须处于登陆状态,浏览器没有关闭

     

    *这是我们得到的url,并对他进行加工,修改地址为baodinghttp://192.168.66.246/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=baoding&email=lucy%40pikachu.com&submit=submit

    *这样就是我们构造完成的url,让用户点击

     

    2postcsrf演示

    *post型的csrf漏洞所需要修改的信息并不在url里,而是在请求体里面进行提交的。所以我们需要和xsspost请求一样,布一个站点,做一个表单,让目标用户点我们站点的表单的url。向存在postcsrf漏洞的页面去提交post请求。

    *我们得先做一个post表单,并把它放到我们的www文件夹下

     

    *发送给用户连接,用户访问,则完成修改:192.168.66.246/post.html

     

    1.3 常见CSRF防范措施

    1)增加token验证(常用)

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

    2)关于安全的会话管理(避免会话被利用)

    *不要在客户端保存敏感信息(比如身份认证信息)

    *测试直接关闭,退出时的会话过期机制

    *设置会话过期机制,比如15分钟内误操作,则自动登陆超时

    3)访问控制安全管理

    *敏感信息的修改时需要对身份进行二次认证,比如修改账号,需要判断旧密码

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

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

    4)增加验证码

    一般用在登陆,(防暴力破解),也可以用在其他重要信息操作的表单中

  • 相关阅读:
    Django匆匆一眼却解答了多年疑惑
    2020年度总结,似乎没有什么大的长进,似乎也得到了一些收获
    Django搭建示例项目实战与避坑细节
    真香,理解记忆法学习Python基础语法
    如何让文科生5分钟写上Python
    Django官方为什么没有标准项目结构
    用PyCharm打个专业的招呼
    MySQL/MariaDB读写分离配置
    Mysql/Mariadb主从复制
    图解CentOS系统启动流程
  • 原文地址:https://www.cnblogs.com/pangsong/p/12487833.html
Copyright © 2011-2022 走看看