问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
某国外cms代码审计
漏洞分析
最近发现无聊的时候发现这个cms有个上传洞,于是心血来潮的审计了一下,整体技术含量不是特别大,代码审计初学者也可以学习一下
最近发现这个cms有个上传洞,于是心血来潮的审计了一下,整体技术含量不是特别大,代码审计初学者也可以学习一下。 #### RITEcms   #### 访问admin.php,然后输入默认账密admin admin,再次访问admin.php进入后台  #### File Manager  #### Upload file  #### 选择文件  #### OK-Upload file  #### 下面进入代码审计 ##### Admin.php中,进入到filemanage.inc.php文件  ##### 进入之后看到fileupload函数,这里new一个类,把对象赋值到upload,然后全局搜索FileUpload,发现是在cms/includes/classes/FileUpload.class.php文件当中   ##### 这里赋值了upload和uploaddir参数,因为这里是一个构造方法,它的构造方法,就是在这个实例化对象的时候才会调用,然后construct后面两个参数是在实例化的时候加进去的  ##### 继续往下走  ##### 在73行有move\_uploaded\_file函数进行上传,前面的$this->upload\[‘tmp\_name’\]是之前上传的文件临时文件夹的后缀名,后面的$this->uploadDir.$tempFileName是BASE\_PATH.$directory.’/’  ##### 然后回到刚刚的filemanager.inc.php文件  ##### 看到base\_path,我们再去全局搜索一下,在文件/data/settings.php中  ##### 在settings.php文件中可以到,返回了绝对路径的上一级目录 ##### 然后跟踪directory参数   ##### 这里的目录是不固定的,如果判断为true,则是/files,如果为false,则 是/media ##### 然后继续往下走  ##### 如果为false进入else语句,调用savefile函数 ##### 这里把file\_name传进去,对应public function saveFile($filename=’’)的filename,这里的filename和file\_name的变量名不一样但是传的内容是一样的     ##### 该函数直接用copy函数将临时文件复制到后面的文件中   ##### 这是copy函数中的参数来源 ##### 任意文件删除       ##### 在filemanager.inc.php文件中,如果传过来delete,并且存在cofirmed,就会进入unlink语句判断,因为没有做任何的过滤,这里就可以造成任意文件删除,BASE\_PATH参数跟上面的文件上传是一个参数,这里就不在赘述了 ##### 心血来潮审计一下,目前最新版依旧存在该漏洞,有兴趣的师傅可以自行下载审计一下,还是比较简单的,源代码: <https://ritecms.com/download> ##### 微信公众号 ZAC安全 ##### 因为这篇文章写的较快,所以难免会有错误和遗漏的地方,如有师傅对文章有疑问或者发现错误等,辛苦师傅联系我一下,本人微信 zacaq999
发表于 2022-01-20 11:40:43
阅读 ( 8059 )
分类:
代码审计
3 推荐
收藏
0 条评论
请先
登录
后评论
ZAC安全
5 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!