CSRF漏洞详解

CSRF漏洞( Cross-site request forgery )!!!

同XSS一样,但很多时候很多人经常把XSS与CSRF漏洞混淆,他们之间有着本质的不同,就从信任的角度来区分:

XSS:利用用户对站点的信任

CSRF:利用站点对已经身份认证的信任

实际上CSRF漏洞主要结合社会工程发起攻击。

漏洞利用条件:

1、被害用户已经完成身份认证

2、新请求的提交不需要重新身份认证或确认机制

3、攻击者必须了解Web APP请求的参数构造

4、诱使用户触发攻击的指令(社工)

需要至少以上的条件,才可能说存在CSRF漏洞。

扫描二维码关注公众号,回复: 5424096 查看本文章

下面详解介绍CSRF漏洞的主要利用过程:

工具:DVWA靶机、Kali、Burp suite。

#两种方法:Post / Get

首先:

准备好环境,将主机用于客户端当作普通用户,在Kali上作为攻击者和服务器架设,并在靶机为low与medium状态下进行操作。

初始登陆密码为:password,并调制low状态。

其次:

在kali上开启apache服务配备好服务器,同时在kali上使用同样账号密码登陆上dvwa(用作burp的抓包处理),并将dwva设置为low模式,打开burp进行截断代理,紧接着在CSRF选项中进行更改密码(改为123),成功截断后将内容drop掉,不让其在kali上将密码更改,接下来将我们截取到的数据取部分值配置为(http://1.1.1.1/dwva.....)一个2.html页面,将这个页面放入kali中的apache服务下的/var/www/html文件,后面就需要用社会工程学向客户端普通用户发送含有2.html这个链接,等待客户端普通用户点击,一旦点击,那么密码将被成功修改,客户端退出再次用password密码登陆时将不在生效,而当使用123登陆时才会登陆成功。

这样一个Get方法模式的漏洞利用已经完成。

而对于Posr方法来说,URL是找不到修改密码的参数,所以过去使用的方式就是查看页面源代码,通过对action元素一栏的参数和写法写出一个新的html页面。

但是这种方法过于复杂,所以当使用burp的时候就很方便,直接通过截断之后,drop掉当前操作,在http history中找到响应历史对内容右键选择转换保存内容为新的3.html并在其中修改当客户端点击后要修改成的密码即可,然后重复Get方法操作,社工、等待点击。

当客户端点击之后,密码就被修改完成。

对于low模式下来说,没有验证等机制存在,所以容易完成修改,但是当low变为medium的时候,medium就会存在本地验证机制,看看源码:

low模式

medium模式

很显然,medium多出了一个判断机制,也就是HTTP的REFERER中需要有127.0.0.1这个值才能进行下面的操作,所以在这里medium模式也不是足够安全,同样可以进行绕过:

我们将截取的内容进行重放,然后在referer中末尾加上127.0.0.1这个值,按照Post方法再生成新的html,其效果依然能达到目的。

实际上由low——>medium都是存在不完善的安全模式,但到了hight模式基本上已经做得比较完善了,通过源码就能知道:

在hight模式下更是多出了一个验证机制,所以相对来说是安全。

最后:

CSRF漏洞已经再逐渐防护的越来越好,但是相信上有政策下有对策,没有绝对安全的做法,这样的探索始终是一件有趣的事情;如果是初学者操作操作练练手还是挺好的。

猜你喜欢

转载自blog.csdn.net/Jack0610/article/details/88079140
今日推荐