CSRF 跨站请求伪造

Cross-site request forgery 简称为“CSRF”。在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。

CSRF危害:

  • 修改用户信息
  • 利用身份发送邮件、短信
  • 利用身份转账
  • 盗取账号

CSRF案例

案例1

1、登录B站,然后不关闭浏览器
2、访问链接:https://passport.bilibili.com/register/logout.html#/verify

案例2

在这里插入图片描述

1、用户登录了银行网站,并且没有关闭浏览器
2、黑客给该用户发了一个钓鱼链接,并诱导用户点击
链接内容:http://www.bank.com/transfer/?to=hacker&money=10000
3、用户在不知情的情况下,给陌生人转账10000元

CSRF漏洞攻击

环境:pikachu靶场 CSRF Get
工具:burpsuit

登录之后,修改信息并抓包

在这里插入图片描述

修改信息接口:

在这里插入图片描述

发送请求,信息已经按照修改的内容进行修改

在这里插入图片描述

构造链接

http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=6666666666&add=Oklahoma+City+Thunder&email=kevin%40pikachu.com&submit=submit

在已经处于登录的浏览器中访问链接也会成功修改内容

CSRF poc生成

环境:pikachu靶场 CSRF Get
工具:burpsuit
1、在修改信息时抓包
2、在抓到的数据包中,选择 生成CSRF PoC

在这里插入图片描述

在这里插入图片描述

3、根据需求,修改包中的数据,将生成的html代码复制到html文件中

<input id="submit" type="submit" value="Submit request" hidden />
<script>
// 加一段js,让它自动执行
    window.onload = function() {
    	document.getElementById("submit").click();
    }
</script>

在这里插入图片描述

4、访问html,任何方式都可以

  • 搭建公网服务器,生成链接
  • 生成钓鱼链接

例如:在shell文件夹下开启终端并开启http服务

在这里插入图片描述

访问http://127.0.0.1:8000/

内容已修改

在这里插入图片描述

CSRF漏洞检测

1、确定网站的功能,去测试 存在修改、添加等功能的战
2、CSRF只能通过用户的正规操作进行攻击
3、抓包查看,如果没有token验证,并且不检查referer字段则大概率会出现csrf漏洞
4、构造poc去测试,如果修改信息成功,则存在csrf

CSRF漏洞防御

  • 在请求地址中添加 token 验证(最有效)
  • 验证 HTTP Referer 字段
  • 在 HTTP 头中自定义属性并验证
    漏洞
    4、构造poc去测试,如果修改信息成功,则存在csrf

CSRF漏洞防御

  • 在请求地址中添加 token 验证(最有效)
  • 验证 HTTP Referer 字段
  • 在 HTTP 头中自定义属性并验证
  • 使用验证码或者密码确认方式进行
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐