二十七、CSRF跨站请求伪造

2017-12-21  本文已影响0人  cybeyond

1、简介

1.1、XSS区别

从信任的角度来区分:

在已经身份认证过的用户,可以正常访问服务端资源。此时如果黑客发送一个链接,是进行上述访问的服务资源如修改密码的一个链接请求,此时此用户点击,会被执行,密码会被直接修改,因为是利用已经认证的合法身份提交的。

1.2、结合社工在身份认证会话过程中实现攻击

1.3、业务逻辑漏洞

1.4 漏洞利用条件

2、验证csrf(get方法)

环境说明:
192.168.50.115 kali,模拟黑客,搭建1.html网页,诱使受害者点击
192.168.50.17 模拟受害者机器
192.168.50.183 靶机,有csrf漏洞的服务

2.1、搭建诱使点击网页

首先,黑客要知道web app请求的构造,因此,通过burpsuite截获正常访问时的请求数据。访问csrf界面,然后输入修改的密码,点击提交:

正常访问
burp截获
将get请求以一个可点击链接的方式,写入1.html文件中,在黑客的主机上搭建,路径为/var/www/html/1.html
<a href='http://=192.168.50.183/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change'>csrf</a>

然后启动apahce,并确定能够访问

# service apache2 start

2.2、诱使受害者点击

将上述构造好的网页,通过社工或者其他手段,诱使受害者点击(在受害者已经登录此网站的情况下)

2.3 csrf攻击后果

此时,受害者正在正常访问此网站,此时如果接受到攻击者发送的链接,然后点击了,会发生什么呢?


正常访问 点击恶意链接 密码修改成功

此时logout之后,在通过密码为“password”则无法登录


登录失败

3、验证csrf(post方法)

burpsuite截断后,使用CSRF PoC generator功能。首先截断请求,构造数据请求


截断请求

然后在此基础上,右键点击“CSRF PoC generator”


CSRF PoC generator选择
随后会生成csrf html:
生成csrf html

复制内容,在'/var/www/html/2.html'中粘贴


2.html

验证
在正常登录访问网站的同时,点击恶意链接

点击恶意链接
此时,密码已经被修改。
密码修改成功

4、源代码

4.1、low级别

low源代码

4.2、medium级别

上述的都是基于low级别进行的poc测试,下面通过medium级别可以看到,多了一层判断,意思是判断referer信息,看请求中是否含有127.0.0.1即只能本机修改密码,如果不是则不能执行。


medium源代码

通过请求截断,在referer中添加127.0.0.1,只要在referer中找到此字段,即为通过判断条件

修改referer

转发forward后,密码已经修改成功


修改密码成功

4.3、high级别

高级别增加了当前密码的二次校验功能


high级别 high源代码

5、自动扫描程序的检测方法

6、应对对策

上一篇 下一篇

猜你喜欢

热点阅读