目录
一、CSRF简介
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF。它是利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害者不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
CSRF与XSS的区别
- XSS、SQL注入等都属于技术漏洞。(客户信任服务器)
- CSRF属于逻辑漏洞,通过伪装成受信任用户的请求来利用受信任的网站。在服务器看来,所有的请求都是合法正常的。(服务器信任经过身份验证的客户)
与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
二、原理示意图
CSRF攻击成功的前提条件:
- 用户必须登录
- Hacker必须懂得一些发包的请求
- 服务器端不会有二次认证
- 被害方是不知情的
三、实验环境
Windows Server 2003:DVWA服务器,安装PHPStudy,IP地址为192.168.247.129
Kali(Hacker):IP地址为192.168.247.157
物理机Win 10(Hacker):在Win10上模拟修改密码的过程,并用Burp Suite获取URL
Windows XP(被攻击方) :访问DVWA,测试实验结果
补充:PHPStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP +MySQL+PHPMyADmin +ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。总之学习PHP只需一个包。
四、实验步骤
安全级别:Low
查看源码
源码分析
从源码中可以看到,密码中不能包含SQL中的特殊字符;
服务器收到修改密码的请求后,会检查参数pass_new与pass_conf是否相同,如果相同,则会更新数据库,修改密码。这个过程没有任何的防CSRF机制(用户已经登录服务器)。
方法一
URL:http://192.168.247.129/dvwa/<使用