第十三章—手动漏洞挖掘(十 一)——CSRF

本文深入讲解了CSRF(跨站请求伪造)的概念及其工作原理,包括如何利用客户端已有的合法session发起恶意请求,并通过实际案例演示了如何修改用户的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSRF

csrf——跨站请求伪造
从信息的角度来区分:
xss:利用用户对站点的信任
csfr:利用站点对已经身份认证的用户端的信任

1.概述

原理:
客户端访问服务器端进行登录进行了身份认证,有了一个合法的session,此时如果客户端用户误点击了hack给他的链接这种请求,便会执行请求并把该请求发送给服务器端,而这个请求是利用他现有的合法的session身份来进行提交的,在服务器端看来,该请求有合法的身份验证,便会认为该请求是正常的请求。但是hack也不知道客户端是否点击了该请求,只能等待,如果该请求作用是修改账号密码,修改密码成功,当hack尝试访问服务器端站点,使用之前客户端的用户名和自己修改过的密码就能登录成功。

综合社工在身份认证会话过程中实现攻击
修改账号密码、个人信息(email、收货地址)
发送伪造的业务请求(网银、购物、投票)
关注他人社交账号、推送博文
在用户非自愿、不知情的情况下提交请求

csrf主要在于业务逻辑漏洞,对关键操作提交请求缺少确认机制,所以用户点击hack发送的连接就会发送一些不当的请求。

漏洞利用条件:
1.被害用户已经完成身份认证。
2.心情求的提交不需要重新身份认证或确认机制。
3.攻击者必须了解web app请求的参数构造。
4.诱使用户触发攻击的指令(社工)。

2.演示

修改密码为123,使用burp截断。
在这里插入图片描述
在这里插入图片描述
我们可以发现这个请求一旦请求过去密码就会修改,不需要确认机制,是典型的存在crsf漏洞的请求过程。只要诱使别人点击该url,密码就会被修改。
我们把该url(/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change)复制下来,在攻击者电脑上伪造一个页面或链接诱使被害者点击。

2.1环境

kail:10.0.0.140
metasploitable:10.0.0.142
受害者:windows

2.2hack
#查看80端口是否被占用
netstat -pantu | grep :80
#开启apache服务
service apache2 start
cd /var/www/html
vi 1.html
#1.html内容
<a href='http://10.0.0.142/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change'>csrf</a>
#访问
http://10.0.0.140/1.html

在这里插入图片描述

2.3受害者

已经登录dvwa进行了身份认证。(前提是dvwa的级别为low)
在这里插入图片描述
突然间收到一封邮件,当我点击右键,会打开下面的页面,点击页面中内容:
在这里插入图片描述
点击后跳转,显示密码已修改。
在这里插入图片描述
此时再尝试用原来的密码登录已经登不上去了。hack等了一段时间后,尝试用新的密码123登录,发现登录成功。
在这里插入图片描述
在这里插入图片描述

自动化扫描程序对该漏洞类型从本质上是没有确切办法判定的。但他会从代码安全、服务器确认机制角度来进行检测。
自动扫描程序的检测方法
会检测在请求和相应过程中是否存在anti-CSRF token名,anti-CSRF token是另外的一种确认机制,anti-CSRF token每次访问重要请求时,都会产生一个随机数,如果他的随机性足够好的话,是很没有明确的规律很难进行猜测,攻击的话就很难去伪造。
检查服务器是否验证anti-CSRF token的值。
检查token中可编辑的字符串。
检查referrer头是否可以伪造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值