用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例

Posted 自动化软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例相关的知识,希望对你有一定的参考价值。

        1、CSRF(Cross-site request forgery)跨站请求伪造,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点(信任站点A)。尽管听起来像跨站脚本(XSS);

用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例

2、与网站脚本(XSS)相比:

--XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

--CSRF攻击在近年逐渐流行和难以防范,所以被认为比XSS更具危险性。


3、以下实际场景实验,打开靶机,大家可以看到这是一个用户更改自身密码的页面:

用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例

4、提交新密码new,在浏览器中观察Request 信息可以看到:

  

 用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例


用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例


5、利用上面发现的Request 信息,可以拼凑出带有跨站请求伪造功能的html代码(这里示例将密码更改为678),并保存至页面文件csrf.html:


用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例


6、将csrf.html保存到CSRF_DEMO站点,发布后访问csrf.html,在浏览器中观察Request 信息可以看到,GET请求变更新密码678,直接使用了原有的Cookie(是不是开始蒙圈),Referer信息标记为新的站点下的C


用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例


用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例




8、验证一下“9fe8593a8a330607d76796b35c64c600”是不是678的MD5:



9、至此,我们可以确认http://10.13.80.97/DVWA-master/vulnerabilities/csrf/具有跨站伪造请求安全漏洞;


10、从上面的模拟攻击过程,我们总结以下几点方法,作为常用的CSRF防范方法:

--封闭XSS安全漏洞;

--对于重要的服务,可以尽量使用 XMLHttpRequest,在cookie 之上,建立token机制;

--验证Referer来源;

--写这个系列前,计划每一种类型的演示,不超过10步,还好没有超(这一行与安全无关,友情奉送)。



Testfan社区在今年正式上线了,大家可在社区交流分享技术经验,并且有测试大牛答疑解惑

Testfan为广大测试人员提供技术交流群:

Selenium自动化测试群:197180340

接口测试开发群:521192806

Appium自动化测试:534129320

LoadRunner性能测试群:495447734

移动APP专项测试群:567341175

RobotFramework群:566755248        

Testfan各个讲师们,定时为大家带来免费公开课

获取链接:http://www.testfan.cn/#gks

以上是关于用咱们自己的话和你讲:跨站伪造请求(CSRF)漏洞示例的主要内容,如果未能解决你的问题,请参考以下文章

深入解析跨站请求伪造漏洞:实例讲解

csrf跨站请求伪造漏洞

CSRF(跨站请求伪造攻击)漏洞详解

CSRF(跨站请求伪造)

漏洞分析之CSRF(跨站请求伪造)攻击

Web安全测试之跨站请求伪造(CSRF)篇