CSRF

CSRF

  • 所谓网站的交互,任何功能都是发送数据包实现的

    • 想要篡改A网站某用户的个人信息
    • 搭建了一个B网站,然后JS留了修改A网站个人资料的数据包
    • 骗取浏览B网站的某用户在登录A网站的情况下来访问
    • 无意访问了B,js调用修改信息代码发送个给A
    • 浏览器发现是访问A网站的会把这个用户在A网站已登录成功的Cookie添加到数据包
    • A网站一看你的Cookie正确,就会认为你是本人,会修改成功
  • 流程

    graph LR A网站 --> 用户登录有A的Cookie B网站 --> 黑客创建的网站 黑客创建的网站 --> A[JS代码 修改A网站的个人信息的] 用户 --> |访问| B[黑客搭建的网站] B --> 网站会执行JS代码,达到修改用户个人信息的效果
  • 成因

    1. CSRF漏洞的成因就是网站的cookie在浏览器关闭时不会过期
    2. cookie一般的过期时间是一次会话,一次会话就是关闭浏览器
    3. cookie存在于浏览器中,你可能不止访问一个网站,所以浏览器中的cookie不止一个
    4. 当访问网站的时候,浏览器会判定你访问的时什么站,发送相应的数据包,其中包含该网站的Cookie
  • 注意:

    XSS 偷cookie
    
    CSRF 利用cookie ,浏览器会自动填充cookie
    
  • CSRF的核心

    1. 验证码是他最好的防御方法

      修改密码,需要数验证码,任何操作都价格验证码可以完全杜绝CSRF

    2. token字段

      开发为了安全,设置了一个,每个请求表单中都存在一个字段,这个字段就是token

  • 如何判断某网站是否存在csrf

    1. 注册一个账号

    2. 通过burp抓取 修改个人信息的数据包

    3. 使用burp工具生成CSRF攻击代码(右键数据包-相关工具-CSRF Poc 生成)

    4. 复制生成的代码、另存为1.html文件

    5. 使用浏览器打开1.html文件

  • 特殊函数

    1. Referer字段:告诉服务器我是从哪个网站跳转过来的
    2. setTimeout函数:延时执行
    3. Iframe:内敛标签
      • 通过修改高度和长度,达到隐藏效果
    4. php可以调用cmd,php shell 有时候会变成cmd shell
  • 如何判断某网站是否存在csrf

    1. 注册一个账号

    2. 通过burp抓取 修改个人信息的数据包

    3. 使用burp工具生成CSRF攻击代码(右键数据包-相关工具-CSRF Poc 生成)

    4. 复制生成的代码、另存为1.html文件

    5. 使用浏览器打开1.html文件

  • 攻击流程

    1. 注册两个号进行抓包测试

    2. 抓包查看是否有token(如果有,尝试找找规律,一般有token都是随机的)

    3. 抓包构建CSRF攻击代码,burp右键的相关工具 CSRF Poc

    4. 构建好的Poc保存为html文件,进行点击尝试修改

      如果想要让它自己触发,加上下面代码就会自动触发

      <iframe src="攻击代码.html" width="0" height="0">
      
posted @ 2022-07-12 16:45  余星酒  阅读(79)  评论(0)    收藏  举报