CatfishCMS 4.5.7 csrf getshell-漏洞文库小世界-安全文库-NGC660安全实验室

CatfishCMS 4.5.7 csrf getshell

CatfishCMS 4.5.7 csrf getshell

漏洞影响

CatfishCMS 4.5

复现过程

思路:

前台评论出插入xss代码->诱骗后台管理员访问网站-内容管理-评论管理-自动执行xss代码->通过csrf插入一条新文章->通过csrf清除缓存->在通过js访问前端任意页面生成缓存建立shell

大概的想法就是这样做了。

后台创建文章方法

地址:application\admin\controller\Index.php

方法:write();

这个方法没有什么可以讲的只是后面的组合漏洞要使用到他

后台清除缓存方法

地址:application\admin\controller\Index.php

方法:clearcache()

这个方法没有什么可以讲的只是后面的组合漏洞要使用到他

例子:

1, 准备好脚本

1627c708e38e4292f56f1a7a6ad4a4e7

2,利用前面的xss漏洞,配合这个脚本形成xsrf漏洞

098e2a2102364ede35307e154cad0669

b4cae2187d31ec17e2fef97c946646b5

这样我们在前端的事情就完事了。接着我们模拟后台管理员进入后台的操作

模拟的后端管理员操作:

fd6ac3a8109e3ec5bdb03adae234d10b

050bf6bd0e13a6e84b3da18331c18e48

a42e8860211c185ae4e3de19b3957c55

c6d0acbf80a1ed330deb854687b69883

4712cb5d93541e1dce96a852721f8b98

58f1769d8b45469f61a0e0cd14df92d7

漏洞原理与流程:

  • 1,后台创建文章方法
  • 地址:application\admin\controller\Index.php
  • 方法:write();
  • 这个方法没有什么可以讲只是单纯的从前端获取数据然后写入数据库罢了
  • 2,后台清除缓存方法
  • 地址:application\admin\controller\Index.php
  • 方法:clearcache()
  • 这个方法没有什么可以讲的。只是单纯的删除缓存数据
  • 3,访问前端重新生成缓存
  • 地址: application\index\controller\Index.php
  • 方法:index()

87992ef182e329ba41023c8ee89a13b3

2a14d9ee52307e9f912ac75374104703

ed6f8d662609c2ad980c437ac2fc2132

d0fd7a0beb9efc782c616c8f635d0b46

4b06bffd11ce7f7c548b5727163ee13b

缓存的名字由来

缓存的名字组成就是比较简单的了。

58ee439e659ef60007ecb75ab02d7aad

bb9831755cdfef06598e70d5326d3521

5f37e84f174366d19229817d825da8fe

041a4c97f9542c0fceb89288d669df4e

这上面几幅图就是缓存的名字了什么意思呢?很简单

首先是从index目录里面的index模块下面的index方法

调用了一个方法

$template
= $this->receive('index'); = index

然后是ndex目录里面的Common模块里面的receive 方法

获取了变量$source 值 = index

获取了变量$page 值 = 1

Cache::set('hunhe_'.$source.$page,$hunhe,3600); 缓存方法

最后就是

MD5(hunhe_index1) = 9040ab6906a15768edcd9e5b1d57fcda

5c292c1e200ab4e46c255b86c0141265

后记:

使用此方法的话,尝试一下在url中输入

http://www.xxxxxxx.com/runtime
http://www.xxxxxxx.com/runtime/cache
http://www.xxxxxxx.com/runtime/cache/8d6ab84ca2af9fccd4e4048694176ebf.php
按顺序输入如果前两个访问得到的结果是403  最后的结果不是403或是404 而是返回正常的页面,那么说明站点的缓存目录是可以访问的,这个时候可以使用此漏洞。配合xss+csrf 获取getshell
请登录后发表评论

    请登录后查看回复内容