DAY21:CSRF

一、什么是CSRF
1. CSRF(XSRF)定义

 

 

2. CSRF原理介绍
DAY21:CSRF_第1张图片

 

DAY21:CSRF_第2张图片

 

 

3. CSRF攻击的两个条件
①登录受信任网站A,并在本地生成cookie
②在不登出网站A的情况下,访问危险网站B

 

 

4. CSRF与XSS的区别
csrf不要求网站有其他漏洞,使用起来更方便,但此漏洞有很大缺陷,需要知道向哪个页面提交请求,请求参数是什么样的,一般用在对网站很了解或在代码审计后挖到了CSRF漏洞后
 
5. CSRF防御手段
(1)验证token值。
(2)验证HTTP头的Referer。
(3)用XMLHttpRequest附加在header里。
 
 
二、CSRF简单利用
1. CSRF提交GET请求(DVWA实验)

 

 

2. CSRF提交POST请求
DAY21:CSRF_第3张图片

 

 

3. AJAX,同源策略 跨域请求(了解概念)
DAY21:CSRF_第4张图片

 

 

利用 AJAX 来执行 CSRF 漏洞失败(在 CSRF 里就不要用ajax):
DAY21:CSRF_第5张图片

 

 

4. CSRF与XSS结合(DVWA实验)
利用存储型xss漏洞写入CSRF攻击语句到数据库,每当管理员查看存储数据时都会执行CSRF攻击语句
 
5. 了解同源策略和跨域请求
https://www.cnblogs.com/rockmadman/p/6836834.html
①先来说说什么是源
• 源(origin)就是协议、域名和端口号。
以上url中的源就是:http://www.company.com:80
若地址里面的协议、域名和端口号均相同则属于同源。
以下是相对于 http://www.a.com/test/index.html 的同源检测
• http://www.a.com/dir/page.html ----成功
• http://www.child.a.com/test/index.html ----失败,域名不同
• https://www.a.com/test/index.html ----失败,协议不同
• http://www.a.com:8080/test/index.html ----失败,端口号不同
②什么是同源策略?
同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的。
• 不受同源策略限制的:
(1)页面中的链接,重定向以及表单提交是不会受到同源策略限制的。
(2)跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的