CSRF漏洞的利用与学习

Posted 合天智汇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF漏洞的利用与学习相关的知识,希望对你有一定的参考价值。

点击“蓝字”关注,每日学习网安干货

CSRF漏洞的利用与学习

CSRF的原理

CSRF漏洞的利用与学习


发现漏洞可利用处->构造(搭建)搭建代码->发送给用户(管理员)->触发代码(发送请求)………


从这个利用的一个流程中,我们可以发现,攻击者仅仅只是做了两处工作:

第一处是:发现漏洞利用处;

第二处就是构造利用代码以及发送至用户(管理员)。


至于利用,你会发现CSRF与XSS不同,XSS是攻击者自己提交,等待结果,而CSRF呢,是由用户(管理员)自身提交。甚至可以说攻击者只做了构造代码的工作。


CSRF漏洞的利用与学习

OWASP CSRFTester

CSRF漏洞的利用与学习


这是OWASP推出的CSRF半自动化软件,他省去了CSRF最繁琐的过程,代码构造。下面是软件的截图‍‍


CSRF漏洞的利用与学习
CSRF漏洞的利用与学习


CSRF漏洞的利用与学习

利用CSRFTester进行CSRF攻击

CSRF漏洞的利用与学习


进入已经搭建的CMS后台的管理员管理模块


CSRF漏洞的利用与学习


浏览器里代理设置为CSRFTester的代理127.0.0.1:8008


CSRF漏洞的利用与学习


开启CSRFTester抓取数据包,正常添加管理员 返回可以看到已经抓取到了数据包


CSRF漏洞的利用与学习


在Form Parameters中没有找到token的值,那么就可以实现CSRF攻击


在Report Type中。有四种方法来进行攻击。‍‍

‍‍Forms:创建一个form表单,内容为hidden(隐藏),用户不可见(可POST、GET)‍‍
‍‍iFrame:创建一个iframe框架,高宽为0,用户不可见。(可POST、GET)‍‍

IMG:创建一个IMG标签(只能GET)。‍‍

‍XHR:创建一个AJAX请求(可POST、GET)‍‍
‍Link:创建一个a标签的超链接(只能GET)


此处先选择Forms进行测试


点击Generate html 便生成了一个index.html


CSRF漏洞的利用与学习


由其中的HTML源码可以看出这是一个简单的提交表单,点击运行这个html文件
可以看到成功的添加了一个管理员用户


CSRF漏洞的利用与学习
CSRF漏洞的利用与学习


到此利用CSRFTester进行CSRF攻击成功


CSRF漏洞的利用与学习

构造提交表单进行CSRF攻击

CSRF漏洞的利用与学习


审查元素得到管理员管理的URL,进入查看源码。分析提交表单


CSRF漏洞的利用与学习
CSRF漏洞的利用与学习


修改提交表单


CSRF漏洞的利用与学习


点击按钮提交,成功添加管理员


CSRF漏洞的利用与学习
CSRF漏洞的利用与学习


在html中增加javascript脚本,自动提交表单


CSRF漏洞的利用与学习


CSRF漏洞的利用与学习

利用ajax结合xss进行CSRF攻击

CSRF漏洞的利用与学习


就是把CSRF的AJAX请求放到XSS里,以达到攻击的效果


在测试用的这套CMS的留言板处就存在存储型XSS漏洞


在这里我们可以使用CSRFTester生成一个ajax


CSRF漏洞的利用与学习


我们可以看到ajax中核心部分


CSRF漏洞的利用与学习


同时也可以自己编写一个简单的ajax

var xmlhttp;

if(window.XMLHttpRequest){

  xmlhttp=new XMLHttpRequest();

  }else{

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

xmlhttp.open("POST","/admin/admin_manage.asp?act=add",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("admin=789&password=789&password3=789&button=提交数据");



在xss平台上配置项目


CSRF漏洞的利用与学习


然后插入测试网站的留言板里


CSRF漏洞的利用与学习


管理员查看留言信息就能添加一个管理员账号了


CSRF漏洞的利用与学习
CSRF漏洞的利用与学习


CSRF漏洞的利用与学习

CSRF 漏洞防护

CSRF漏洞的利用与学习

其实现在有关CSRF漏洞防护已经是比较成熟了,其主要防护的思路就是需要在进行后台数据修改操作的过程中,添加对当前用户身份的有效验证措施,而不能仅限于cookie的识别,这里简单的罗列了下防护措施如下。


(1) 来源校验

使用http请求头中referer来源,对客户端源进行身份校验,此方法早期使用比较多,但是仍然容易被绕过,所以这里并不建议使用。


(2) 用户token 校验

添加基于当前用户身份的有效tokens随机验证机制,即在向后端提交数据操作请求时,添加基于当前用户的随机token校验值,此种校验方法当前使用比较多;


(3)当前用户密码验证

在修改关键信息时,要钱当前用户输入其自身的密码,以验证当前用户身份的真伪,防止未授权的恶意操作;


(4)添加验证机制

在请求数据的提交前,需填写验证码信息提交,以增加对用户来源的有效验证,防止恶意未授权的操作产生。



别忘了投稿哟!!!

大家有好的技术原创文章。

欢迎投稿至邮箱:edu@heetian.com

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。

有才能的你快来投稿吧!


 

合天网安实验室

网址 : www.hetianlab.com

长按图片,据说只有颜值高的人才能识别哦→

以上是关于CSRF漏洞的利用与学习的主要内容,如果未能解决你的问题,请参考以下文章

DVWA学习日记--CSRF超详细漏洞利用讲解

CSRF漏洞学习

带你分析CSRF攻击技术场景

实战 | 从零学习CSRF漏洞并配合实战挖掘CSRF漏洞

挖洞经验 从XSS漏洞到四步CSRF利用实现账户劫持

CSRF与SSRF学习笔记整理