CSFR漏洞
CSRF简介
CSRF全名是Cross Site Request Forgery,翻译成中文就是跨站点请求伪造。其通过利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作。
漏洞原理
因为Web应用程序在用户进行敏感操作时,如修改账户密码、添加账户、转账等操作时,没有进行如检验表单Token、http请求头中的referer值等防御措施,从而导致恶意攻击者利用被攻击者的身份完成敏感操作。
CSRF攻击流程
攻击者发现CSRF漏洞——构造恶意代码——发送给受害人——受害人打开——受害人执行代码——完成攻击
本章利用工具:Firefox、Firefox的hackbar插件
Low级别
- 登录DVWA平台选择Low级别和CSRF模块,页面上是一个很平常的密码修改页面,并且只要求输入新密码即可并未验证原密码。那么我们就先用正常用户的方式进行修改密码,比如这里我将密码改为123。
这里我们看见下面显示的Password Changed表示密码修改成功,同时我们通过HackBar分析此时的URL,发现在这段URL中我们输入的参数都包涵在了URL中,那么我们就猜想是不是可以直接通过修改URL的参数即可修改密码呢,然后我们就构造一个新的URL:
http://127.0.0.1/DVWA-1.9/vulnerabilities/csrf/
?password_new=12345
&password_conf=12345
&Change=Change#
并在该浏览器的一个新的界面打开这个URL,我们发现密码同样被修改了。
这里我们就实现了一次CSRF漏洞攻击,当然这里我们构造的URL就太明显了,因此我们可以将其包装一下。比如这里我们写一个CSRF.php文件,里面内容可以简单一点类似:
<img src="http://127.0.0.1/DVWA-1.9/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#"/>
然后我们将其放在PhpStudy的WWW目录下,接着我们在同一个浏览器打开127.0.0.1/CSRF.html,这时显示的是这样一个图像