CSRF 实验:无防御措施的 CSRF

简介: CSRF 实验:无防御措施的 CSRF

前言

CSRF(Cross-Site Request Forgery),也称为XSRF,是一种安全,通过欺骗用户在受信任网站上执行非自愿的操作,以实现未经授权的请求。

CSRF利用了网站对用户提交的请求缺乏充分验证和防范的弱点。通常通过在受信任网站上构造恶意的请求链接或提交表单,然后诱使用户点击该链接或访问包含恶意表单的页面。当用户执行了这些操作时,网站会自动发送请求,包含用户的身份验证信息,而用户并不知情。

以下是一个简单的示例,说明可能导致CSRF攻击的代码片段:

<!-- 受信任网站的删除用户请求 -->
<form action="https://example.com/deleteUser" method="POST">
  <input type="hidden" name="userId" value="123" />
  <input type="submit" value="Delete User" />
</form>

在这个示例中,可能在自己的网站上构造一个页面,包含上述代码。当用户访问该页面时,浏览器会自动向`https://example.com/deleteUser`发送POST请求,删除用户ID为123的用户,而用户可能并不知情。

为了防止CSRF,可以采取以下安全措施:

1. CSRF令牌:为每个用户生成独特的CSRF令牌,并将其包含在请求中。服务器在处理请求时验证令牌的有效性,如果令牌无效,则拒绝该请求。

2. SameSite Cookie属性:将Cookie的SameSite属性设置为Strict或Lax,以限制Cookie的跨站点访问。这可以防止在受信任网站上利用用户的身份验证Cookie。

3. 验证HTTP Referer头部:服务器可以验证请求中的Referer头部,确保请求来自受信任的来源。然而,这种方法并不可靠,因为Referer头部可能被篡改或缺失。

4. 验证用户操作:在执行敏感操作(如删除用户)之前,要求用户进行额外的身份验证,如输入密码或通过二次确认。

5. 随机化请求参数:在请求中包含随机生成的参数,并且要求服务器验证这些参数的有效性。这可以防止攻击者构造恶意请求。

总之,CSRF是一种安全,通过欺骗用户在受信任网站上执行非自愿的操作来实现未经授权的请求。为了防止CSRF,应使用CSRF令牌、设置SameSite Cookie属性、验证HTTP Referer头部、验证用户操作和随机化请求参数等安全措施。

实操演示

打开

链接

https://portswigger.net/web-security/csrf/lab-no-defenses

要求:

​该实验室的电子邮件更改功能容易受到 CSRF 的攻击。
 
为了解决这个实验室问题,请制作一些 HTML,使用CSRF 攻击来更改查看者的电子邮件地址并将其上传到您的漏洞利用服务器。
 
您可以使用以下凭据登录您自己的帐户:wiener:peter

点击 Access The Lab 访问

点击 My account

输入题目给出的账号登录

登录进去后是一个更改邮件地址的界面,根据题目这里存在 CSRF

打开 BurpSuite 抓包

发现 Cookie 值与 email 值

BurpSuite 中右键生成 CSRF Poc

这里要更改下邮件地址(不能重复)

点击上面的 Go to exploit server

在 Body 这个部分粘贴生成的 HTML 代码

点击 View exploit 可以看到自己的邮箱地址被更改证明 CSRF 利用成功

最后更改下 HTML 中的邮箱地址再点击 Deliver exploit to victim 就能通关啦


相关文章
|
8天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
30 6
|
2月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
68 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
1月前
|
Web App开发 存储 安全
就一次!带你彻底搞懂CSRF攻击与防御
与XSS攻击相比,利用CSRF漏洞发动攻击会比较困难,这也是在网络上看起来CSRF的人气小于XSS的原因之一。下面我们来利用CSRF漏洞发起攻击,并针对攻击进行防御,彻底弄懂CSRF,话不多说,我们直接开冲。
|
2月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【7月更文挑战第25天】在Python Web开发中确保应用安全至关重要。以下是针对SQL注入、XSS与CSRF攻击的防护策略及示例代码
62 6
|
4月前
|
安全 算法 数据安全/隐私保护
CSRF 实验:Token 不与 Session 绑定绕过验证
CSRF 实验:Token 不与 Session 绑定绕过验证
|
4月前
|
存储 安全 Go
CSRF 实验:Token 不存在绕过验证
CSRF 实验:Token 不存在绕过验证
|
4月前
|
前端开发 安全 Go
CSRF 实验:更改请求方式绕过验证
CSRF 实验:更改请求方式绕过验证
|
安全 JavaScript 前端开发
XSS及CSRF攻击防御
XSS是什么? XSS即跨站脚本攻击,是由于处理不好用户的输入,导致恶意脚本在浏览器中执行
126 0
|
安全 前端开发 数据库
CSRF攻击原理以及防御
CSRF攻击原理以及防御