跨站请求伪造

与XSS的区别:

XSS:利用用户对站点的信任
CSRF:利用站点对已经身份认证的信任,在用户非自愿,不知情的情况下请求。

  1. 开启Burp 侦听

  2. 访问存在CSRF 的页面,这里是修改admin 用户的密码,随便输入一个密码a,点击提交。
    在这里插入图片描述
    此时通过 用户名:admin密码:a 就能登录admin账户
    在这里插入图片描述

  3. 更改密码后找到更改密码的请求,右键选择Generate CSRF PoC
    在这里插入图片描述
    在这里插入图片描述

  4. 修改为自己想要的密码,比如admin,admin
    在这里插入图片描述
    刷新
    在这里插入图片描述

  5. Test
    在这里插入图片描述

在这里插入图片描述
粘贴到浏览器,点击提交
在这里插入图片描述
提示密码修改成功
在这里插入图片描述
回到主界面尝试用admin,admin登录:
在这里插入图片描述
登陆成功
在这里插入图片描述

这是最低安全级别,对于更高的安全级别需要改对应的Referer,Cookie 或隐藏在表单中的value 值。

自动化扫描检查方法:

  • 在请求和响应过程检查是否存在anti-CSRF token 名
  • 检查服务器是否验证anti-CSRF token 的名值
  • 检查token 中可编辑的字符串
  • 检查Referer 头是否可以伪造
    对策
  • Captcha
  • anti-CSRF token
  • Referer 头
  • 降低会话时间

相关文章: