对于CSRF的认识
任何的网站功能,本质都是数据包的传递
CSRF的本质就是在不知情的情况下偷偷发送了数据包。 (信任)
(ajax 异步传输)XMLHttpRequest
通过JS去发送请求,然后获取信息
条件:
- 存在CSRF漏洞
- 黑客要制作一个看似正常的页面欺骗受害者来点击(黑客设置的网页有指向性 )
- 目标登录过网站,权限还在
CSRF和XSS的区别:CSRF只能够借用cookie,并不能获取cookie
CMS:源码是固定的,数据包可以构建(管理员后台添加管理员)
用户改用户:
1. A的用户
2. 任何用户的数据包构成都是相同的
防御:
- 对于用户而言,使用浏览器无痕浏览、隐私模式
- 对于网站而言,设置Token(唯一解)即Cookie中存在一段随机值,没有Token的网站就有可能存在CSRF
- 在现在的浏览器存在CORS的问题,不同的网站发送JS请求他会主动拦截并删除Cookie
靶场实操
先在本地对该CMS进行搭建,测试这个CMS是否存在漏洞


创建成功,登录后台

额。。。这个版本是从官方下载的,和课程中的有些不一样呀,课件中的dedeCMS安装不了,加载不出来

然后,之后的步骤就是后台有一个写入文件的模块,然后写入一句话木马,并将数据包进行抓包,使用Burp生成CSRF攻击页面,并提交诱导客服访问

这里用的是课件中的1.html文件,稍作修改


ok,一句话成功上传,菜刀连接

找到flag,提交

如何防御
- 添加referer头(绕过方式,修改referer证据链)
Referer是HTTP请求Header的一部分,当浏览器向Web服务器发送请求的时候,请求头信息一般需要包含Referer。该Referer会告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。
- 使用Token验证(绕过方式,XSS获取Token,再次进行CSRF)
- 实施安全的逻辑流程(比如修改密码时需要提供旧密码)
Comments NOTHING