科威盒子导航系统代码审计过程总结

前言
还是要从bugku上的一道实战题目说起,其实事后才发现,自己在错误的道路上越走越远,故有此文。


0x01 官方思路
题目地址:http://120.24.86.145:9006
一波目录扫描,发现1.zip文件,果断下载解压,是网站源码。其中有包含flag的文件名flag-asd.txt,访问之即得答案。
0x02 漏洞搜集
事实上大多数人都会从这里开始,首先搜集科威盒子相关漏洞信息,主要有以下两个:

  1. SQL注入漏洞
  2. 任意文件下载漏洞
    通过注入漏洞可以顺利得到后台账号密码,这里就不多说了,admin/a1234567直接登录后台。

0x03 审计之旅
因为代码就功能层逻辑结构比较简单,先是通篇扫了一下,主要发现几个鸡肋漏洞。

  1. 任意tpl文件上传覆盖
    漏洞发生在admin/skin_edit.php页面。
<?php
require_once 'inc.php';

$type = !empty( $_GET['type'] ) ? trim( $_GET['type'] ) : "";
$name = !empty( $_GET['name'] ) ? trim( $_GET['name'] ) : "";
...
} elseif( $type == "ok" )
{
    $path = ROOT.'/templates/'.$name.'/'.$_GET['aa'].'.tpl';
    file_put_contents( $path ,$_POST['content']);
    $templates->assign("msg","修改模板成功!");
    $templates->display( templates ( 'msg.tpl' ) );
}
?>

type、name和aa变量均可控,因此可以修改任意模版文件。
这里存在一个小tips,由于路径可控,可以利用windows下的命名规则绕过上传,比如上传aa=1.php:,windows下会生成1.php但是却无法写入文件,但是P牛写过在IIS下,可以利用<<<向写入内容。

  1. 科威框架解析
    科威也是封装了底层框架,就在快要放弃之际,偶然发现在templates_c目录下发现大量php文件,并且里面内容为模板信息。再次点燃希望。

科威每次都是使用类似MVC的模式进行加载,每次都会读取tpl模版文件处理后并展示,整个逻辑框架如下:
1.png

我先是测试了直接向tpl文件中写入php代码,但它在编译时会过滤<?php、?>等敏感字符,就js加载php也被过滤掉了,这里尝试后未解。
0x03 峰回路转
在审计的过程中,include/smarty/Smarty_Compiler.class.php编译文件中的模版tags处理函数引起了我的兴趣,主要代码如下:

function _compile_tag($template_tag)
{
 ....
    switch ($tag_command) {
        case 'include':
            return $this->_compile_include_tag($tag_args);

        case 'include_php':
            return $this->_compile_include_php_tag($tag_args);
 ...

主要意思是如果模板文件中出现include_php标签,则会调用文件包含函数。后面就不做过多分析,就是将任意文件进行include()包含,从而引发文件包含漏洞。
0x04 漏洞利用
首先上传一个test.tpl文件,注意文件路径,这里以/admin/为例,内容为php执行代码:

<?php phpinfo();?>

3.png

再修改/admin/templates/index.tpl文件为,构造include_php标签为:

<!--Kw[include_php file="test.tpl"]-->

4.png

访问/admin/index.php,即加载恶意执行代码
5.png

0x05 后记
也没有必要提供什么修复方案了,反正科威好像早就关门了。主要是学习下审计,锻炼下能力吧。

科威盒子导航系统是基于科威网址导航系统开发的全新的网址导航系统。它聚合了目前较为流行的三大导航模式:传统模式、盒子模式和平板模式。传统模式中,网址分类皆以文字方式显示,不显示LOGO,适用传统网址导航站使用。盒子模式是科威软件工作室独创的导航风格,网址盒子方式显示,可以显示LOGO,适用于购物导航等网站使用。平板模式是近些年较为流行的导航模式,仅有一个页面即可切换不同分类,适用于与用户交互多的网站使用。   【软件功能特点】 1.聚合三大导航模式,给用户全新的体验; 2.自定义站点显示颜色,推荐等,使好站更容易被发现; 3.自定义广告,无需修改文件即可修改广告,摆脱修改广告困扰; 4.用户注册功能,用户注册后可自定义收藏; 5.收录申请管理,使收录申请简单无忧; 5.自定义系统变量,常用字符后台同意修改; 6.自定义模板功能,多种模板随意切换; 7.插件管理功能,使网站功能更强大; 8.可添加多个管理员,共同管理网站,使网站维护更容易; 9.全站采用静态HTML,一键生成全站,便于搜索引擎收录; 10.数据备份恢复功能,一个备份,解决数据丢失问题; 11.系统升级功能,有了新版本直接在线升级,无需使用FTP上传,节约时间。   【使用环境】 1.可用的 httpd 服务器(如 Apache,Zeus,IIS 等) 2.PHP 5.0 或更高 3.MYSQL 4.1 或更高 4.WEB空间25MB或更多 5.MYSQL数据库20MB或更多   【安装方法】 将upload目录中的内容上传到网站空间,全部用二进制方式上传 将每个目录设为可读写(777) 运行http://您的域名/install/(安装向导) 安装成功后请删除/install/目录下所有文件   【系统演示】 用户名:kewei8 密码:kewei8 请不要修改演示站的内容。   【声明】 为了大家的共同发展,请不要删除网站底部的"Powered by KwinNav.",这对您的网站来说只是一行小小的文字,但对我们来说却是极大的帮助,本软件有版权保护功能,如果您删除了网站底部的文字及链接,本软件将不能正常使用。在测试过程中可能会遇到程序的一些问题,请及时与我们联系。   后台演示截图     相关阅读 同类推荐:网址导航源码
科威可视化导航的含义是一个集合较多网址,并按照一定条件进行分类的一种网址站。可视化网址导航方便网友们快速找到自己需要的网站,而不用去记住各类网站的网址,就可以直接进到所需的网站。作为网址导航一个分支的可视化网址导航是一种以图片和文字相互交替的新一代网址导航,是未来网址导航的一个趋势,以其简单明了、直观而得到用户的广泛欢迎。 可视化模式 科威软件工作室独创的导航风格,网址以可视化方式显示,可以显示LOGO,适用于各类导航网站。 传统网址导航仅能看到文字网站名称,使用可视化模式可以使用户对网站有更直观地了解。 酷站收藏 用户可以将自己喜欢的网站加入到收藏夹中,下次访问网站时直接呈现,方便用户访问自己喜欢的网站。 增加与用户的交互功能,更加灵活的显示方式,提供更好的访问体验。 建议反馈 用户对网站有什么意见或建议,可以直接通过首页反映,站长可以在后台查看。 通过用户的评价,为以后网站发展提供明确的方向。 大幅提高网站性能 代码优化,软件性能大幅提升。优化资源占用,快一点,再快一点。 WEB占用空间减少60%,数据库占用空间减少50%,低端主机也可以跑得很顺畅,让你体验如飞一般的感觉。 使用环境: PHP空间20MB MySQL数据库10MB软件 功能特点: 众多网址 直观体现 数万条网址,直观的展现给用户,全新的模式 千万站点 方便管理 程序自带一万余站点,免去添加网站烦恼 批量修改 方便快捷 网址分类批量修改、删除、排序……大幅提高建站速度 免费使用 方便快速 免费使用的网址导航系统,自由修改模板内容,只需保留版权信息。 数据备份 安全可靠 一键备份网站数据,随时还原,使网站数据安全可靠 商业版功能更强大 购买收费版获得技术支持,删除版权信息,代理安装,多种源码选择
时光荏苒,科威软件工作室已成立一载有余。在这一年来,我们得到了广大用户的支持,也收到了用户们提出的宝贵意见。在这里首先要向广大用户致以诚挚的谢意,你们的支持是我们前进的动力,你们的意见是我们发展的方向。在这美丽的金秋十月,我们隆重推出科威网址导航系统5.0版。 【产品简介】 威网址导航系统是采用PHP MYSQL制作的功能全面的网址导航系统,它拥有功能完整的后台管理系统,可以不限分类级数,无限添加站点。可以自定义模板,多种模板随意切换,一键生成全站HTML,便于搜索引擎收录。可自定义广告,使网站可以获得收益。科威网址导航系统还有用户收藏和浏览记录功能,使网站功能更加强大。 【软件功能特点】 1.不限分类级数,随心所欲添加分类,摆脱多级分类困扰; 2.自定义站点显示颜色,推荐等,使好站更容易被发现; 3.自定义广告,无需修改文件即可修改广告,摆脱修改广告困扰; 4.用户注册功能,用户注册后可自定义收藏; 5.收录申请管理,使收录申请简单无忧; 5.自定义系统变量,常用字符后台同意修改; 6.自定义模板功能,多种模板随意切换; 7.插件管理功能,使网站功能更强大; 8.可添加多个管理员,共同管理网站,使网站维护更容易; 9.全站采用静态HTML,一键生成全站,便于搜索引擎收录; 10.数据备份恢复功能,一个备份,解决数据丢失问题; 11.系统升级功能,有了新版本直接在线升级,无需使用FTP上传,节约时间。 【截图演示】 (点击看大图) 首页 内页 旧模板 (点击看大图) (点击看大图) 新模板 (点击看大图) (点击看大图) 后台 (点击看大图) (点击看大图) 【5.0新功能】 1.发布了新的模板; 2.添加站点分类批量添加功能; 3.修改了后台管理结构; 4.优化了用户收藏功能; 5.更新了网站数据; 6.修改了一些小BUG。 【使用环境】 1.可用的 httpd 服务器(如 Apache,Zeus,IIS 等) 2.PHP 5.0 或更高 3.MYSQL 4.1 或更高 4.WEB空间25MB或更多 5.MYSQL数据库20MB或更多 【安装方法】 1.点击此处下载科威网址导航系统免费版安装包 2.将upload目录中的内容上传到网站空间,全部用二进制方式上传 3.将每个目录设为可读写(777) 4.运行http://您的域名/install/(安装向导) 5.安装成功后请删除/install/目录下所有文件 【升级方法】 1.点击此处下载科威网址导航系统免费版升级包 2.将upload文件夹内全部内容采用二进制方式上传到网站根目录并覆盖已有文件 3.将每个目录设为可读写(777) 4.进入网站后台(初次进入可能提示错误,不必理会),点击系统管理->系统升级 5.提示出现"系统升级成功"即可 【系统演示】 系统演示:http://demo.kewei8.com 后台管理:http://demo.kewei8.com/admin 用户名:admin 密码:admin 请不要修改演示站的内容。 【声明】 为了大家的共同发展,请不要删除网站底部的"Prowed by KeWeiSites.",这对您的网站来说只是一行小小的文字,但对我们来说却是极大的帮助,本软件有版权保护功能,如果您删除了网站底部的文字及链接,本软件将不能正常使用。如果您想删除请联系购买正版。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值