CSRF实例 && 代码审计查找csrf讲解

前言

CSRF感觉似乎很不值钱的样子,我前几天审计出了3个后台存储xss+csrf
然后cnvd跟我说不收csrf和后台存储xss,自此后台我从不找xss和csrf

但是毕竟作为目前毕竟出名流行的一个漏洞,还是讲解一下,我会讲的很简单,ojbk

0x01 CSRF介绍

(csrf介绍没啥好说的,我去copy一下)

CSRF的全名为Cross-site request forgery,它的中文名为 跨站请求伪造

CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。

1).CSRF是利用了系统对页面浏览器的信任
2).XSS则利用了系统对用户的信任。

原理:
攻击者盗用了你的身份,以你的名义发送恶意请求

CSRF能够做的事情有:
以你的名义发送邮件、发消息、盗取你的账号,甚至于购买商品,虚拟货币转账

0x02.本地靶场演示csrf

这个cms是我找的,提交cnvd不收,我就拿出来讲QAQ

cms下载地址:点击下载
CSRF实例 && 代码审计查找csrf讲解_第1张图片
因为存在csrf和xss,然后刚好想到这里友链有csrf和xss
那我们就直接制作一个poc
CSRF实例 && 代码审计查找csrf讲解_第2张图片
copy一下,然后复制到html中,我们再用火狐打开

CSRF实例 && 代码审计查找csrf讲解_第3张图片
上面看到了友链是没有链接的,然后我们点击我们的poc
CSRF实例 && 代码审计查找csrf讲解_第4张图片
CSRF实例 && 代码审计查找csrf讲解_第5张图片
然后发现success成功了,我们去前台刷新,看会不会跳xss弹窗

CSRF实例 && 代码审计查找csrf讲解_第6张图片
成功的弹窗了,我第一时间想到就是蠕虫,哈哈哈

然后我们再去后台看下是否添加了
CSRF实例 && 代码审计查找csrf讲解_第7张图片
没错,添加好了。如果要细节的话可以这样写
https://www.baidu.com
因为后面那串代码会被拼接到站点去执行,所以是看不见的
只会看到baidu的url,这就是出其不意

0x03 剖析CSRF漏洞原理

下面友链简称 a页面
csrf.html(也就是burp生成poc)简称 b页面

a页面需要管理员登录的情况下,然后诱惑管理员点击b页面,这时候因为b页面有我们的恶意代码,他会借用a页面中的管理员,去执行b页面中的恶意payload

为什么会执行b页面的内容呢?
因为a页面管理员登录的情况下,是会有个cookie
然后你再打开一下其他页面,就不需要再次登录,而csrf就是借用管理员的cookie,去执行我们编辑友链的表单,于是乎就打出了csrf

CSRF实例 && 代码审计查找csrf讲解_第8张图片
核心代码在这个地方
第一个if 是给变量赋值,然后以POST传参形式的
第二个if 判断 title不能为空
CSRF实例 && 代码审计查找csrf讲解_第9张图片
然后就执行第二个if,然后发现getrs不知道是什么函数,去定位一下
CSRF实例 && 代码审计查找csrf讲解_第10张图片
发现这里是$conn就是连接数据库,不用去看也猜得到的
然后是执行mysqli_query$conn连接数据库,然后value就是执行的sql语句

	if(getrs("select * from sl_link where L_title='$L_title' and L_del=0","L_id")==""){

这句就是查询数据库,看是否存在,不存在的时候才会执行下一步的,这时候我们再去插入数据库
接下来就是回显内容,回显内容就不说了

从这边可以看见,这边没有token,也没有二次校验
导致可以造成xss,插入数据库的时候也没有对其进行使用htmlspecialchars()去过滤,这时候即存在xss,又存在csrf,本来还想测测是不是存在注入,由于我比较懒,写的文章是关于csrf的,我就不继续测试了

所以就造成了xss+csrf
CSRF实例 && 代码审计查找csrf讲解_第11张图片
这边提到xss了,我也提一下。关于xss的审计小知识,应该大佬都知道,我就简单的讲讲。存储型xss是在第二步的时候会进行过滤,如果②没过滤的话,基本就存在xss了
(除非config.php这种配置文件有过滤QAQ)

关于过滤这方面的话百度一下就可以了,我不多废话。可以进行二次校验,或者校验token,或者判断refer头是从哪里来

一些小思考,这个cms可以csrf添加超级管理员
csrf危害有时候也挺大的,比如后台getshell,这时候可以尝试配合csrf,哈哈哈

文末

然后我似乎想不到我还要讲什么了,那就这样的潦草结束吧,等之后想讲什么的时候,再补充

本篇文章讲的简单易懂,如果懂了,那就懂了
如果不懂,那就评论一下下,我为你解答,或者直接加我微信
zym18350405381
CSRF实例 && 代码审计查找csrf讲解_第12张图片

你可能感兴趣的:(代码审计,web安全)