从漏洞复现到代码审计,深入学习csrf漏洞原理

Posted 安全龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从漏洞复现到代码审计,深入学习csrf漏洞原理相关的知识,希望对你有一定的参考价值。

文本独家广告赞助商:安全龙

xm17与安全龙出品的系列高质量原创技术文章,看文末集合链接!


在开始之前,我们来说一下,什么是csrf漏洞。

简单的说就是一个网站,存在一个修改用户名的操作,然后我们抓取这样的一个数据包,构造成一个连接,发给别人,别人点击后,就修改了自己的网站用户名。

很简单是吧,那么想想,为什么别人点击一下链接就能够控制住别人的操作,难道没有防范么?肯定是有的,简单的讲,1)验证token,2)验证HTTP请求中的Referer,3)验证XMLHttpRequests里的自定义header。等等。


那么是不是这样说,我们只要找到没有验证这些的操作,是不是存在csrf漏洞呢?答案是肯定的。

我们想一下,如果挖代码审计的话,挖一些危害比较严重的漏洞,当然要从后台考虑,比如一个修改配置文件的操作,或者增加一个管理员用户的操作,或者进行各种与文件读写有关的操作等等相关的,我们是不是都会看一下请求包里面有没有包含这种验证,或者说,我们可以通过绕过达到获取权限?所以,我们一般黑盒对这些cms进行测试的话都会有快速定位的效果。

我们简单的来看一下网上公布的一个《某cms后台csrf添加管理员+getshell》


首先,我们本地搭建好环境,这是一个增加管理员的操作,我们填好后,进行burp抓包


从漏洞复现到代码审计,深入学习csrf漏洞原理


可以清楚的看到数据里面我们post过去的参数值,但是这里看起来有referer,无妨,我们用burp自带的csrf构造一个html提交页面


从漏洞复现到代码审计,深入学习csrf漏洞原理


选择这个功能,会弹出来一个窗口,我们直接点击复制一个html或者选择浏览器打开都行,这里我选择第二个

从漏洞复现到代码审计,深入学习csrf漏洞原理


然后本地创建一个csrf.html,选择粘贴这段html进去

从漏洞复现到代码审计,深入学习csrf漏洞原理

可以看到 这是一个html的form表单,通过post将参数及参数值传送到了index.php?r=admin/admin/index这里,可能你会问,这个路径怎么理解,嗯~很简单,这套cms是采用MVC架构开发的单一入口的,类似于thinkPHP。简单的说就是post到了admin模块的admin控制器的index方法。好吧,我们先看看这个html文件怎么用,等下再说代码。


当我们创建好文件后,直接用管理员所在的环境打开

是这个样子

从漏洞复现到代码审计,深入学习csrf漏洞原理

点击一下。

从漏洞复现到代码审计,深入学习csrf漏洞原理


再来看看管理员列表

从漏洞复现到代码审计,深入学习csrf漏洞原理


是不是很简单,所以说只要我们将这个文件发给使用这套程序的人,并且他有管理员权限,当他点击后就会添加这个用户。那么可能会有人问,这怎么搞?是不是太麻烦?那么我们再想想,如果结合xss呢?如果我们有一个前台能提交到后台,让管理员点击的xss漏洞,我们在将xss的链接修改为我们这个文件是不是就可以了。如果你还嫌麻烦,那就找找更直接的,能够修改文件的。

从漏洞复现到代码审计,深入学习csrf漏洞原理


可以看到这里有一个操作模板,并且后缀是php的一个功能,我们抓包试试

从漏洞复现到代码审计,深入学习csrf漏洞原理


同样,将这个包保存为html文件,并且用浏览器打开

从漏洞复现到代码审计,深入学习csrf漏洞原理


从漏洞复现到代码审计,深入学习csrf漏洞原理


可以看到,成功添加。虽然说是后台的操作,但是只要我们能够构造,并且管理员能够点击,危害还是蛮大的。


接下来说代码

从漏洞复现到代码审计,深入学习csrf漏洞原理


可以很直观的看到修改管理员的操作是这个方法完成的,读一读,看一看

从漏洞复现到代码审计,深入学习csrf漏洞原理


作者历史稿件





文章版权说明:

3、文章如有侵权请与我们微信客服cyj9961联系,并携带版权证明。


联系客服



技术分享自媒体号

安全龙学堂服务号



安全龙,一家专注做网络安全技术教育培训的网站!网址www.anquanlong.com

以上是关于从漏洞复现到代码审计,深入学习csrf漏洞原理的主要内容,如果未能解决你的问题,请参考以下文章

CSRF攻击原理及防御和相关漏洞复现

CSRF攻击原理及防御和相关漏洞复现

php代码审计7审计csrf漏洞

[代码审计] LvyeCms CSRF漏洞分析

审计挖掘之CNVD通用漏洞

小皮1-click漏洞的代码审计学习笔记