CSRF(Crosss Site Request Forgery,跨站请求伪造)是一种网络攻击方式,也被产称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF.
CSRF漏洞是因为web应用程序在用户进行敏感操作时,如修改账号密码、添加账号、转账等,没有校验表单token或者http请求头中的referer值,从而导致恶意攻击者利用普通用户的身份(cookie)完成攻击行为。
从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1.登录受信任网站A,A网站给用户分配cookie,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B(同一个浏览器中)。
3.B通过用户的cookie,向A站发送了请求
4.而A站并没有验证请求的来源,而导致恶意请求成功。
CSRF漏洞产生的条件:
CSRF高危触发点:论坛交流、用户中心、反馈留言、交易管理、后台管理等一般一般都会造成隐私泄露。如果在交易管理功能的页面,存在着CSRF漏洞,可以进行一些类似转账或者是购买物品的操作时,那么用户的资产会存在安全隐患。如果实在后台管理的功能处存在CSRF,会威胁到网站本身的安全性。此外,**会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易,或变更用户名或口令。对受到防火墙保护的所有web应用程序而言,CSRF攻击都能绕过防火墙攻击web应用。
CSRF漏洞危害:
1、伪造HTTP请求进行未授权操作:篡改、盗取目标网站上的重要用户数据;未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等;如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性
2、作为其他攻击向量的辅助攻击手法,比如配合XSS
3、传播CSRF蠕虫
CSRF防御:
CSRF演示过程:
首先开启我们CSRF(修改密码的环境)
然后设置代理
然后打开我们生成CSRF(POC)的软件,拦截修改密码的页面
拦截成功后点击下面的生成html的按钮,保存
然后添加如下代码,
1 | <input type="hidden" name="password_new" value="需要修改的密码" /> |