入坑小白的CSRF漏洞验证
2022-12-15 08:2:38 Author: 网络安全学习圈(查看原文) 阅读量:20 收藏

在下方公众号后台回复:【网络安全】,可获取给你准备的最新网安教程全家桶

1、什么是CSRF?

CSRF(Cross-site request forgery,跨站请求伪造),通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来很像跨站脚本(XSS),但它与XSS非常不同:

XSS是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行和难以防范,所以被认为比XSS更具危险性。

一般来说,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的恶意代码被执行。

2、如何验证

看到这里你是不是也跃跃欲试想验证 一下,那就——先抓个包咯!这里,我用的抓包工具是Burp Suite(BP网上详细的使用教程蛮多,这里就不赘述啦)。

第一步:设浏览器代理

在chrome和火狐都有相应的插件来设置代理,以火狐为例,可以在“添加组件”模块搜索找到foxyproxy,添加即可。


添加成功后,浏览器上就有一个“小狐狸”标志。

设置代理地址为127.0.0.1,并设置端口为8080。

【tips】127.0.0.1所有电脑的本地服务器都默认为127.0.0.1。

【tips】8080这个代理端口不能随意改动,因为其它端口可能被占用。可以改为没有被占用的端口,范围为1~65535。

第二步:下载BP,并配置浏览器相同

打开BP后,与浏览器配置相同的IP和端口信息,保存即可。

【tips】现在大多数网站为了数据传输的安全性,强制使用 HTTPS 进行通信。这时我们在使用 Burp 代理后去访问将会出现证书错误的警告,那要咋办呢?莫慌莫慌,浏览器打开127.0.0.1:8080,找到CA证书并下载后,在“证书机构”模块导入证书就好啦。

第三步:抓包验证是否存在CSRF漏洞

1)打开待验证的网站,注册用户(原始密码为123456a),并在页面修改密码(123456b)。BP抓到相应的POST包:

2)构造请求

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

修改提交的参数,生成CSRF的HTML,在浏览器中测试。

点击copy后,在浏览器中打开,点击“Submitrequest”提交请求。

3)检查是否提交成功

提交后,页面返回“密码修改成功”。BP抓包也显示密码被修改,则说明可以成功伪造请求进行操作,该网站的确存在CSRF漏洞。

3、写在结尾 

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

- End -

近期课程上新:

Windows服务安全 | 以太网交换与路由技术 | Linux安全运维 | Web安全 | 灰帽编程 | 渗透测试  | 安全化概述与虚拟化 | 跨站脚本攻击 


文章来源: http://mp.weixin.qq.com/s?__biz=MzIxMTcyMjg2MA==&mid=2247493213&idx=1&sn=ca7a6c4f38b39bc5ef9a5702d0fd0144&chksm=9752515ea025d848803c13b47596fa8eb6cd6c7819185b70fd27fcb3a2f3dc8c639478753ddc#rd
如有侵权请联系:admin#unsafe.sh