一、CSRF概述
1.csrf的攻击方式
跨站请求伪造(CSRF)是一种危害很大的Web攻击方式。攻击者伪造出恶意网站,把网站的恶意链接发送给受害人。受害人点击了恶意链接后恶意代码执行,完成攻击。
2.案例
举个例子,你在登录某银行的网站后,银行的服务器会给你正在使用的浏览器发送一个cookie,这个cookie用来验证你的身份信息,可以让你在一段时间内再次访问该银行的网站而不需要登录。银行网站有很多进行操作的接口,拿转账的接口来说,如果该银行网站在用户进行转账操作时不对用户的身份信息进行任何的验证,那么这个转账的接口就存在CSRF漏洞。
攻击者可以针对该漏洞构造出一个对转账接口进行操作的链接(url)(向某某账户转多少钱),然后攻击者把这个进行非法转账操作的链接伪装在一个正常web页面中,然后攻击者把这个伪造页面的链接(恶意链接)发送给受害人。
如果受害人在接收到这个链接之前恰好访问过该银行的网站,在受害人的浏览器中就会存在银行服务器下发的cookie。这时受害人点击了恶意链接进入到了伪造的页面,伪造页面中的对转账进行非法操作的链接(url)因为受害人浏览器中有cookie的原因就会直接执行转账操作。用户账号里的钱就会被攻击者转走。
二、什么是Cookie
要了解什么是跨站请求伪造(CSRF)攻击,首先需要了解什么是cookie。
1.cookie概述
Cookie 是由网站存储在用户浏览器中的一小段数据,用于记录用户的状态和信息。当浏览器中具有某个网站的cookie而再次访问该网站时,浏览器会把cookie提交给网站服务器,服务器对cookie验证通过后就能直接访问该网站,从而免去登录步骤。
2.案例
用淘宝网举例,我第一次登录淘宝网时需要输入账号密码登录。
当我登录后再次访问淘宝网会发现我没有输入账号密码,但是网站显示是登录状态。
这是因为浏览器向淘宝网站的服务器提交了cookie值,服务器已经验证了cookie值,相当于验证了你的身份信息,所以你不需要输入账号密码就自动登录了淘宝网。
三、CSRF攻击演示(pikachu靶场)
1.cookie机制
先进行登录
登录后可以看到用户的账户信息
我们复制该网页的链接后关闭浏览器(注意不要点击退出登录,否则浏览器会对cookie进行销毁)。
在浏览器地址栏输入复制的地址进行访问。
可以发现这次没有输入账号密码直接就登录了。
用burpsuite抓到的http请求包显示提交了cookie值
2.CSRF漏洞分析
点击修改个人信息
对性别进行修改,点击提交。
发现地址栏有我们提交的修改信息,而且服务器在修改身份信息时,不对用户身份进行验证直接进行信息修改,所以判断存在CSRF漏洞。
3.构造修改身份信息的url并伪造页面
我们用burpsuite抓取进行身份信息修改的http请求包。
鼠标右键-Engagement tools-Generate CSRF Poc
可以看到burpsuite自动为我们伪造了页面,并且把非法操作的URL隐藏到了伪造页面中。复制页面的html代码。
修改伪造页面代码中修改身份信息的值
这样,一个伪造好的页面就做好了。
4.发送恶意链接给受害人
做好一个伪造好的页面后,把页面的链接发送给受害人。受害人点击链接访问到了伪造的页面。
点击提交按钮后,发现身份信息被修改了。而且和伪造页面里面攻击者想要修改的信息一样,说明攻击成功。