Anchor CMS 0.12.7 跨站请求伪造漏洞(CVE-2020-23342)

这个漏洞复现相对来说很简单,而且这个Anchor CMS也十分适合新手训练代码审计能力。里面是一个php框架的轻量级设计,通过路由实现的传递参数。

0x00 漏洞介绍

Anchor(CMS)是一款优秀的轻量级PHP内容与文章管理程序,并且有着很好的扩展性。攻击者可以构造恶意的html文件诱导网站管理员点击,从而进行删除用户等敏感操作,典型的CSRF漏洞,属于web应用类漏洞。

0x01 漏洞环境

攻击机、网站管理员:192.168.91.1 windows10

目标机:192.168.91.144 Ubuntu 18.04-Server

工具:BurpSuite2021以及CSRF POC generator插件、Firefox(CSRF漏洞复现时,不能使用Chrome,因其自带屏蔽CSRF)

CMS版本:Anchor 0.12.7

0x02 漏洞搭建

1、安装完LAMP后,访问网址,显示失败。是因为Anchor CMS不会自动安装,需要在终端上安装,即

apt install -y composer cd /var/www/html composer install

image-20220121173319609

2、之后再次访问网址就可以看到

image-20220121173336105

3、点击安装之后会出现,是因为我没有执行apt install libapache2-mod-php

image-20220121173645192

4、之后就进入到安装语言了,随便选了一个

image-20220121173827748

5、之后创建数据库为Anchor,root用户密码:d1HNJg$h1u8新建一个数据库用户

username:root_sql

password:NUIDghde1&

image-20220121174656593

6、设置管理员账户

image-20220121174839620

7、安装成功

image-20220121174910170

8、因为是CSRF的漏洞,我们需要创建用户,而创建用户就需要访问管理员后台,提示说,请移除install这个目录??

image-20220121175500843

image-20220121175320729

9、那行,那我就移除

image-20220121175415364

10、再刷新果然没了

image-20220121175430653

11、创建用户test@1.com,它的所有信息都是test@1.com,然后以此类推,创建多个账户

image-20220121182426161

0x03 影响范围

Anchor 0.12.7

0x04 漏洞条件

管理员轻易点击链接

0x05 漏洞原理

通过代码审计,在/anchor/routes/users.php中,没有对请求进行任何的二次验证以及token值校验,所以直接产生了CSRF漏洞。下面这段代码就是这个文件中的关键部分。基于php的路由分配,实质上来说就是利用url中的path去匹配对应的控制类,同时调用其中的方法进行相关操作的处理。

/** * Delete user */ Route::get('admin/users/delete/(:num)', function ($id) { //路由寻址的地方为admin/users/delete/$num $self = Auth::user(); if ($self->id == $id) { Notify::error(__('users.delete_error')); return Response::redirect('admin/users/edit/' . $id); //删除错误,并且重定向到admin/uses/edit } User::where('id', '=', $id)->delete(); Query::table(Base::table('user_meta')) ->where('user', '=', $id) ->delete(); Notify::success(__('users.deleted')); return Response::redirect('admin/users'); //删除成功,并且重定向到admin/users }); //全程没有任何的校验机制 }); 0x06 漏洞复现

1、进入到管理员后台删用户那里,打开Bp,点击删除用户后抓包,可以看到是向index.php/admin/users/delete/9发起请求。

image-20220121182555000

2、发送至repeater,点击右键,生成对应的CSRF POC

image-20220121182645851

3、复制下来,粘贴到一个文件里面

image-20220121182820550

4、然后诱导网站管理员进行点击,就会删除

image-20220121182908079

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsxyj.html