vlambda博客
学习文章列表

入坑小白的CSRF漏洞验证

声明:由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,知微安全以及文章作者不为此承担任何责任。知微安全拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经知微安全允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的

0x00 写在前面的话


据说,很多刚刚入坑安全的小白,都会面临以下两个尴尬的局面:
1)心高气傲地学习高端知识—>灰头土脸学不会深受打击—>怀疑自己—>放弃
2)沉下心来去学习基础知识—>莫名其妙搞不懂有什么用—>兴趣消磨—>放弃
这就是网络安全从入门到放弃的两条直通车,难道就没有适合小白入门的成长路线吗?当然有!其实对于刚入坑的小白来说,除了需要掌握基础的安全知识外,可以通过学习常规漏洞扫描器的使用,漏洞验证以及一些工具的使用,培养兴趣and建立信心。 【总结】入坑小白的小目标——“用得了扫描,验得了漏洞”。

Flag都立了,咱们也来实际操作一把。以下经历是拿到客户授权后,对网站漏扫时发现的CSRF漏洞,验证总结后拿出来与大家一起学习~【敲黑板:一定要获得授权后才能漏扫!!!】
0x02 什么是CSRF?

CSRF(Cross-site request forgery,跨站请求伪造),通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来很像跨站脚本(XSS),但它与XSS非常不同:XSS是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行和难以防范,所以被认为比XSS更具危险性。
一般来说,CSRF是攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。
说的不太通俗易懂,那就举个例子来说明吧~
入坑小白的CSRF漏洞验证 图1:CSRF攻击示意图
1)首先,用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A。
2)其次,在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A。
3)然后,用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B。
4)网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;浏览器在接收到这些攻击性代码后。
5)根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理理该请求,导致来自网站B的恶意代码被执行。
入坑小白的CSRF漏洞验证
0x03 如何验证

看到这里你是不是也跃跃欲试想验证一下,那就——先抓个包咯!这里,我用的抓包工具是Burp Suite(BP网上详细的使用教程蛮多,这里就不赘述啦)。
第一步:设浏览器代理
在chrome和火狐都有相应的插件来设置代理,以火狐为例,可以在“添加组件”模块搜索找到foxyproxy,添加即可。
入坑小白的CSRF漏洞验证
入坑小白的CSRF漏洞验证
添加成功后,浏览器上就有一个“小狐狸”标志。
入坑小白的CSRF漏洞验证
设置代理地址为127.0.0.1,并设置端口为8080。
入坑小白的CSRF漏洞验证
【tips】127.0.0.1所有电脑的本地服务器都默认为127.0.0.1。
【tips】8080这个代理端口不能随意改动,因为其它端口可能被占用。可以改为没有被占用的端口,范围为1~65535。
第二步:下载BP,并配置浏览器相同
打开BP后,与浏览器配置相同的IP和端口信息,保存即可。
入坑小白的CSRF漏洞验证
【tips】现在大多数网站为了数据传输的安全性,强制使用 HTTPS 进行通信。这时我们在使用 Burp 代理后去访问将会出现证书错误的警告,那要咋办呢?莫慌莫慌,浏览器打开127.0.0.1:8080,找到CA证书并下载后,在“证书机构”模块导入证书就好啦。
入坑小白的CSRF漏洞验证
入坑小白的CSRF漏洞验证
第三步:抓包验证是否存在CSRF漏洞
1)打开待验证的网站,注册用户(原始密码为123456a),并在页面修改密码(123456b)。BP抓到相应的POST包:
入坑小白的CSRF漏洞验证

2)构造请求

右键选择Engagement tools中的Generate CSRFPoC,修改POST包中的原始密码为页面修改的密码(123456b),修改当前密码为一个新密码(123456c)。

入坑小白的CSRF漏洞验证
修改提交的参数,生成CSRF的HTML,在浏览器中测试。
入坑小白的CSRF漏洞验证
点击copy后,在浏览器中打开,点击“Submitrequest”提交请求。
3)检查是否提交成功
提交后,页面返回“密码修改成功”。BP抓包也显示密码被修改,则说明可以成功伪造请求进行操作,该网站的确存在CSRF漏洞。
最后,双手奉上BP社区版官方地址:
https://portswigger.net/burp/communitydownload
0x04 写在结尾

对于入坑小白,可以从最感兴趣的漏洞下手,了解这个漏洞类型的基本原理,以及相关技术和工具。一开始可能会花很多时间却收获甚少,最头秃的是有时候找到几篇相关的博客,却不知如何下手。不过别担心,慢慢积累,多多总结,漏洞喂多了,总有一天会从一名入坑小白进阶为入(an)坑(quan)大(da)白(niu)。

 

本文主要参考资料:
1.Bursuite简单抓包改包发包
https://blog.csdn.net/FTQOOO/article/details/103818421
2.burpsuite之CSRF测试
https://blog.csdn.net/andyfeng088/article/details/80195105
2.CSRF攻击与防御
https://blog.csdn.net/xiaoxinshuaiga/article/details/80766369