渗透测试基础-CSRF原理及实操

渗透测试基础-CSRF原理及实操

只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力💪!

CSRF原理

CSRF:跨站请求伪造(英语:Cross-site request forgery), 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任

还是用我自己的理解,在说一下CSRF的原理:
网站A存在CSRF漏洞,网站B为黑客搭建的攻击网站(攻击网站:与A网站是同一个网站,黑客在重置密码的阶段,抓取了重置密码的数据库包,将这个数据包制作成了SCRF利用代码),用户C为网站A的管理员。

1. 用户C,通过自己的账号密码登陆到了网站A。
2. 用户C,在没有关闭浏览器的情况下(或者没有退出登陆网站A的情况下),访问了网站B。
3. 用户C,回来继续浏览自己管理的网站A,可是事后发现,自己的密码登陆不了了。

这里的原理是:用户C在登陆网站A之后,网站会返回给用户C一个Cookie值,这个值是存在用户C的浏览器当中,接着用户C去访问了网站B,网站B的攻击代码要求是,访问网站A并修改密码,用户浏览器接收到要求,发现自己这里就有网站A的Cookie值,自己是能操作的,所以浏览器以为是用户C自己本身的操作,这里就按照攻击代码中去执行修改密码行为。

来图片看个案例
在这里插入图片描述
点击Change抓取数据包
在这里插入图片描述
Burp制作CSRF Poc
在这里插入图片描述
复制到本地打开,点击按钮,网页自动跳转到刚才改密码的界面,显示密码已更改完成
在这里插入图片描述
从上面这个图片例子可以知道CSRF攻击的一个大体流程,但前提是存在CSRF漏洞的浏览器cookie还没有过期,如果过期了是没有用的。得先伪造一个请求链接,发送给受害者,受害者点击后请求被执行。

CSRF靶场演练

在这里插入图片描述
网站是一个dedecms,在网站最下面还看到了版本号,那既然知道版本了,去百度上下载其源码,在本地构建攻击代码我们再来尝试。
在这里插入图片描述
根据靶场开头的提示,我们得将网站目录地址同步一下,不然会导致数据访问的问题,

在这里插入图片描述
cms源码解压出来的文件名是uploads,而靶场为newcsrf,这里讲文件名做更改,放入网站www目录中。开启phpstudy
在这里插入图片描述
接下来在自己的浏览器上打开虚拟机的ip就能进入dedecms的安装界面(具体步骤省略)。
在这里插入图片描述
在这里插入图片描述
后台的密码,是自己在安装的时候就填写的,adminadmin
在这里插入图片描述
登录进去,我们该想的就是:需要制作怎样的CSRF才能拿下靶场机器。再三思索,最好的就是想办法上传一句话木马文件上去,一举通过webshell工具拿下。既然需要上传文件,那我们就应该找网站后台的上传点在哪,在上传点保存文件那前一个步骤,开启Burp,将数据包抓下来,制做CSRF的poc,这样就能达成目的。

我们将眼光移到文件上传处
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里我们还得加入点东西,因为这个是Burp制作的东西,不是已攻击为目的的,这个做出来的CSRF是需要点击一下按钮才会跳转的,太过于明显,这里加入一点新东西,让其只要点击链接就会执行,不需要在另外点击一次。
在这里插入图片描述
这里添加的代码的意思是:先在上面定义个一个id=‘aa’的值,下面是,当检测到id的值为aa时去执行网页内容,执行的时间是100毫秒以后,这样就能让其只要访问就能自动触发

既然有了文件,现在本地尝试一下。(不要用google浏览器尝试,会出错。。)
在这里插入图片描述
这里看到并没有123.php,然后将刚才的文件,拖入浏览器中。
在这里插入图片描述
在这里插入图片描述
刷新网页之后,123.php出现在了列表中。

这个时候,可以尝试一下看phpinfo()能不能用,如果行的话,那webshell也就没啥问题了。
在这里插入图片描述
既然自己搭建的网页没问题,那就带进靶场试一下,将cc.html里面与靶场url不匹配的地址给替换掉。
在这里插入图片描述
在这里插入图片描述
替换好文件,这里还是和以前一样,交给客服机器人帮我们点击一下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交完成后,只需要等待后台机器人的访问链接,就会在后台创建一个个123.php文件,然后就可以连接菜刀进入后台了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

漏洞总结

至于防御手段,可在请求的数据包里面增加token字段,用随机值去做验证,每次访问网页都会带一个token,当请求过来时,服务器会做比对,当发现两次token不一样时,就不会执行拦截操作。这在CSRF上不能实现的,因为无法提前一步知道网站随机token值是多少。

《最好的防御,是明白其怎么实施的攻击》

CSRF(Cross-Site Request Forgery)是一种常见的网络安全漏洞,攻击者利用用户在目标网站的身份验证信息,通过伪造请求来执行非法操作。以下是关于 CSRF基础知识: 1. CSRF原理CSRF 攻击利用了网站对用户身份验证的信任,攻击者通过欺骗用户在目标网站上执行一个恶意请求,从而实现对用户账户的操作。 2. CSRF 的过程:攻击者构造一个包含恶意请求的网页,然后诱使用户访问该网页。当用户访问该网页时,其中的恶意请求会自动发送给目标网站,而用户并不知情。 3. CSRF 的危害:CSRF 攻击可以导致用户在不知情的情况下执行非法操作,例如更改密码、发送钱款、删除数据等。攻击的危害取决于目标网站上可执行的操作。 4. 防御 CSRF 的措施:为了防止 CSRF 攻击,可以采取以下措施: - 合理使用身份验证:使用随机生成的 token 或验证码来防止跨站请求伪造。 - 检查 Referer 头部:检查请求中的 Referer 头部,确保请求是从合法的来源发起的。 - 添加自定义请求头部:在请求中添加自定义的头部信息,并在服务器端验证该头部的值。 - 使用 SameSite Cookie 属性:将 Cookie 设置为 SameSite 属性,限制 Cookie 在同一站点内使用。 - 验证请求来源:在服务器端验证请求来源的域名或 IP 地址,拒绝非法的请求。 以上是关于 CSRF基础知识,了解 CSRF 攻击的原理和防御措施对于保护网站和用户安全非常重要。在进行渗透测试时,理解 CSRF 的工作原理和常见漏洞场景可以帮助你更好地发现和利用 CSRF 漏洞。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jinxya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值