《网络安全学习》 第九部分----CSRF(跨站请求伪造)漏洞详解

跨站请求伪造(也称为XSRF,CSRF和跨站点参考伪造)通过利用站点对用户的信任来工作。站点任务通常链接到特定URL(例如:http://site/stocks?buy = 100&stock = ebay),允许在请求时执行特定操作。如果用户登录到站点并且攻击者欺骗他们的浏览器向这些任务URL之一发出请求,则执行任务并以登录用户身份登录。通常,攻击者会将恶意HTML或JavaScript代码嵌入到电子邮件或网站中,在用户不知情的情况下,直接或通过利用跨站点脚本缺陷,来执行的特定“任务URL”。

执行CSRF攻击的常见方法有哪些?

执行CSRF攻击的最常用方法是使用HTML图像标记或JavaScript图像对象。通常,攻击者会将这些内容嵌入到电子邮件或网站中,因此当用户加载页面或电子邮件时,他们会对攻击者喜欢的任何URL执行Web请求。

CSRF攻击攻击原理及过程如下:

   1. 用户打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
   2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
   3. 用户未退出网站A之前,在同一浏览器中,访问木马网站B;
   4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
   5.这个时候攻击者就可以替代用户进行一系列的操作,从而发生CSRF隐患

实战CSRF:

这里提供一个靶场:进入靶场 ,里面可以模拟一下常见的漏洞。账号:admin 密码:password

《网络安全学习》 第九部分----CSRF(跨站请求伪造)漏洞详解_第1张图片
1>. 首先我们选择CSRF,进行演练CSRF漏洞
2>. 然后输入新密码和确认密码,进行修改。
3>.点击提交后,浏览器地址会发生改变.
在这里插入图片描述
4>.这里我们可以看出这是一个get请求,并且是明文传输。
5>.接下来,我们创建一个html文件,来模拟木马网站B,这个超链接可以将密码修改位admin

<html>

<head>
<title>csrftitle>
head>

<body>
触发csrfa>
body>

html>

6>.然后我们用浏览器,打开这个html,并点击
《网络安全学习》 第九部分----CSRF(跨站请求伪造)漏洞详解_第2张图片
7.结果如下:我们可以看到成功的将密码修改了。
《网络安全学习》 第九部分----CSRF(跨站请求伪造)漏洞详解_第3张图片
8.然后用修改后的密码可以成功登陆,这就说明网站存在CSRF漏洞(用另一个网站修改其他网站的密码)

CSRF的防御:

  • 验证Referer
  • 使用验证码
  • 使用CFRF-TOKEN(推荐)
  • 现视Session的生命周期

【网络安全学习】系列教程

《网络安全学习》第一部分-----初识OWASP
《网络安全学习》第二部分-----SQL注入学习
《网络安全学习》第三部分-----XSS攻击系列学习
《网络安全学习》第四部分-----SSRF服务器端请求伪造
《网络安全学习》第五部分-----远程代码执行漏洞
《网络安全学习》 第六部分-----文件上传漏洞
《网络安全学习》 第七部分-----跨域资源共享(CORS)漏洞
《网络安全学习》 第八部分-----《网络安全学习》 第八部分-----越权漏洞详解
《网络安全学习》 第九部分----CSRF(跨站请求伪造)漏洞详解

参考资料:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
https://www.cgisecurity.com/csrf-faq.html#

你可能感兴趣的:(csrf,跨站请求伪造,开发栈----网络安全学习)