zoukankan      html  css  js  c++  java
  • pikachu漏洞平台之CSRF

    CSRF简介

    CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造
    在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)
    然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了
    所以CSRF攻击也被称为“one click”攻击

    CSRF和XSS区别

    XSS目标在于获取用户cookie,利用cookie伪装为受害者身份进行登录进而造成破坏,

    CSRF并没有获取到用户的权限,而是利用用户的权限执行我们的payload进行攻击

    1.CSRF(get实验)

    首先我们先登录

     我们先将地址随意修改一个值,然后通过brup suite抓包查看一下,从get提交里面发现请求连同信息都包含在了url里面,包括敏感信息,这时假如我是攻击者,我在这个平台上申请一个账号,然后修改密码,通过这样抓包我就获取到了这个get请求,稍作修改我就可以将其变成一个链接,发给lucy后就可以把他的信息修改了。

     例如我现在伪造一个链接192.168.42.122/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=zhangjiakou&email=lucy%40pikachu.com&submit=submit

    现在我们将地址修改为zhangjiakou 把这穿链接让lucy点击就可以了

     输入这个链接后,地址已经被修改了。

    2.CSRF(post实验)

    还是像之前一样登录进去先修改一次信息,抓包查看

     这次我们发现post提交并没有将敏感信息放在url中提交,而是放在了最下面的表单中提交。我们这次的思路是和xss post一样伪造一个表单页面,让用户点击然后修改用户信息

     这是我们伪造的页面代码,我们把这个html放在www目录下,只要用户点击这个页面的链接,我们就可以将其地址信息修改为hacker

    3.CSRF(token)

    打开CSRF(token)登录后,我们修改信息抓包后发现,url中多了token一串字符,token是随机生成的,如果后台是对比token的值来操作的话,我们就无法伪造url了。

     

    防护:

    • 增加Token验证(常用做法)
      • 对关键操作增加Token参数,token必须随机,每次都不一样
    • 关于安全的会话管理(避免会话被利用)
      • 不要在客户端保存敏感信息(比如身份验证信息)
      • 退出、关闭浏览器时的会话过期机制
      • 设置会话过机制,比如15分钟无操作,则自动登录超时
    • 访问控制安全管理
      • 敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
      • 敏感信息的修改使用POST,而不是GET
      • 通过HTTP头部中的REFERER来限制原页面
    • 增加验证码
      • 一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)
  • 相关阅读:
    C#学习-多态
    C#学习-子类的初始化顺序
    C#学习-面向对象
    Python数据类型知识点全解
    python 复制图片到剪贴板
    pyperclip
    pyautogui
    多线程代码案例
    常用正则表达式最强整理(速查手册)
    python os
  • 原文地址:https://www.cnblogs.com/laoxu777/p/12633176.html
Copyright © 2011-2022 走看看