CSRF(跨站请求伪造)

CSRF


原理:

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

CSRF和XSS的区别:

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

  • XSS利用用户对网站的信任,CSRF利用的是网站对用户网页浏览器的信任

CSRF的常见特性

  • 依靠用户标识危害网站
  • 利用网站对用户标识的信任
  • 欺骗用户的浏览器发送HTTP请求给目标站点
  • 另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。

影响因素
CSRF攻击依赖下面的假定:

  • 攻击者了解受害者所在的站点
  • 攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie
  • 目标站点没有对用户在网站行为的第二授权

一、CSRF(get) login


进行登录

修改个人信息

进行抓包,发现使用get请求提交参数,使用burpsuite中pocGenerate CSRF Poc进行攻击

修改信息,点击Regenerate,生成新poc,点击Test in browser

复制生成连接

模拟被攻击者访问该网页,并点击按钮

被攻击者一旦点击按钮,他的信息就会被修改

二、CSRF(post) login


被攻击者登录

修改个人信息,进行抓包,为post,使用burpsuite中pocGenerate CSRF Poc进行攻击

修改信息,点击Regenerate,生成新poc,点击Test in browser

复制生成连接

模拟被攻击者访问该网页,并点击按钮

被攻击者一旦点击按钮,他的信息就会被修改

三、CSRF Token login


被攻击者登录,

修改信息,进行抓包

发现存在token,其中token的值每次请求都会发生变化

使用了暴力破解绕过token的值

将包发送到Intruder模块,修改数据,将token值添加为变量

进入Options选项,Grep-Extract中add进行添加

点击Refetch response,选中token值复制,点击OK

Payload type选择Recursive grep,并将将复制token值填入

进行攻击

查看个人信息,信息被,攻击者修改

防御措施


  • 增加Token验证(常用做法)
    对关键操作增加Token参数,token必须随机,每次都不一样
    对token的控制进行逻辑功能判断
    对token的所属账户进行效验

  • 关于安全的会话管理(避免会话被利用)
    不要在客户端保存敏感信息(比如身份验证信息)
    退出、关闭浏览器时的会话过期机制
    设置会话过机制,比如15分钟无操作,则自动登录超时

  • 访问控制安全管理
    敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
    敏感信息的修改使用POST,而不是GET
    通过HTTP头部中的REFERER来限制原页面

  • 增加验证码
    一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)

posted @ 2021-09-16 23:27  纸机  阅读(460)  评论(0编辑  收藏  举报