CSRF漏洞
一、CSRF原理与介绍
1、CSRF漏洞原理
CSRF(Cross Site Request Forger y, 跨站请求伪造)是一种网络的攻击方式,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF。
黑客利用已经登录的用户,诱使其访问或者登录某个早已经构造好的恶意链接或者页面,然后在用户毫不知情的情况下,以用户的名义完成了非用户本意的非法操作。
与XSS相比,CSRF攻击往往不太流行,因此对其进行防范的资源也相当稀少,因此该漏洞更加难以防御。
原理总结:
一个CSRF漏洞攻击的实现需要三个部分来构成:
1. 有一个漏洞存在(无需验证修改用户信息、任意修改后台数据、新增请求)
2. 伪装数据操作请求的恶意链接或者恶意界面
3. 诱使用户主动访问或者登录恶意链接触发非法操作
小结:利用已经存在的漏洞构造一个恶意链接或者HTML页面,然后修饰用户点击触发漏洞。
2、CSRF高危出发点
◆ 论坛交流
◆ 用户中心
◆ 反馈留言
◆ 交易管理
◆ 后台管理
3、CSRF漏洞危害
CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易,或变更用户名或口令。对受到防火墙保护的所有web应用程序而言,CSRF攻击都能绕过防火墙攻击web应用。
CSRF漏洞还可以和XSS等漏洞结合使用,从而进一步加大了该漏洞的危害。
1)伪造HTTP请求进行未授权操作
① 篡改、盗取目标网站上的重要用户数据
② 未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等
③ 如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性
2)作为其他攻击向量的辅助攻击手法,比如配合XSS
3)传播CSRF蠕虫
二、CSRF漏洞利用
1、DVWA-CSRF-low
漏洞发现:
编写HTML页面并且将该页面的网址链接发送给网站管理员,管理员在点击该网络地址以后账号密码就会在不知情的情况下被修改。
2、DVWA-CSRF-medium
漏洞发现:
服务端验证方式:HTTP包头的referer参数的值中必须包含主机名(IP地址)。
绕过方式:将HTML文件名称改为“IP地址.html”;
3、DVWA-CSRF-high
漏洞发现:
加入了token验证机制,用户访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。
4、DVWA-CSRF-high
漏洞发现:
加入了token验证机制,用户访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。
一般情况下token验证机制是一种非常合理的CSRF漏洞的防御手段,但是当该web网站同时存在XSS漏洞和CSRF漏洞的时候就可以使用组合漏洞的方式对网站进行攻击。
三、CSRF防御措施
1、Token验证:服务器生成的随机字符串,保存在session中
Token验证代码实现: