『黑客与极客』通读审计之DOYOCMS
北京联盟_本文原题:通读审计之DOYOCMS
前言
首先大家看到我文章的标题 , 我这里所谓的“通读审计”就是把整个代码审计过程一字不差的记录下来 。 因为审计过很多CMS , 也看过很多代码审计文章 , 大多数都是把漏洞点提一下然后文章结束 , 对于不懂MVC的审计者来说 , 看其他人代码审计文章 , 很多细节问题搞不明白(因为我自己也是从那里过来的) , 所以读起来不是太舒畅 , 自己学习起来也有点吃力 , 尤其到MVC框架一块 。 然后这把就是给大家分享一下我个人的整个代码审计过程 , 以及如何发现漏洞 , 如何自己构造语句等等 。 这次审计的cms是DOYOCMS建站系统 , 因为我们学校使用的该系统 , 就随便拿一套过来记录吧 。 也是给自己做个记录 , 给大家分享个人经验 。
一、MVC的了解
这里就不再废话了 , 直接就开始吧 。
本文插图
Index.php第二行 , 上来直接require进来一个config.php , 我们来看一下该文件到底做了哪些操作 。
本文插图
OK , config.php文件定义了一些常量以及数据库信息 。
Index.php第三行 。
$doyoConfig[ 'view'][ 'config'][ 'template_dir'] = APP_PATH. '/template/'.$doyoConfig[ 'ext'][ 'view_themes'];
如下图的变量值赋给
$doyoConfig[ 'view'][ 'config'][ 'template_dir']
本文插图
Index.php的第四行的
require(DOYO_PATH. "/sys.php");
把config.php的两个定义常量
define( "APP_PATH",dirname( __FILE__));
define( "DOYO_PATH",APP_PATH. "/include");
的DOYO_PATH与sys.php拼接起来并且包含(包含include/sys.php)
我们看一下包含进来的sys.php文件进行了哪些操作
本文插图
Sys.php的第四行包含进来一个Functions.php文件 。 从文件名上来看来猜测是包含来的一些方法吧 。
打开看一下
本文插图
好 , 确定包含方法 。 回到sys.php文件继续通读
Sys.php文件的第五行
$GLOBALS[ 'G_DY'] = spConfigReady( require(DOYO_PATH. "/inc.php"),$doyoConfig);
Require进来inc.php文件并且使用spConfigReady函数处理(之前提到的functions.php方法文件还记得吧)
跟进spConfigReady方法
本文插图
可以看到第218行进行判断传入进来的$useconfig是否为数组 , 如果为数组进行遍历该数组 , 并且把传递过来的$useconfig保存到$preconfig内(合并数组) 。
从他调用该方法中给形参1传递一个require进来的文件可以判断 。 该文件直接return一个数组 。
打开包含进来的require(DOYO_PATH.”/inc.php”)文件来看一番
本文插图
直接return一个数组
好 , 把inc.php文件return的数组与之前在index.php中定义过的$doyoConfig['view']['config']['template_dir']保存到全局变量$GLOBALS['G_DY']
回来继续读取sys.php
推荐阅读
- 「汽车」福特、大众畅销车曝安全漏洞,黑客可窃取隐私、操控车辆
- 『界面新闻』黑客能入侵你的梦境了,MIT梦境实验室开发出现实版“盗梦空间”
- [福特]福特、大众被曝网络安全漏洞 黑客还能禁用车辆的刹车系统
- #极客视角#精致旗舰华为P40 :玲珑机身蕴藏影像力大乾坤
- 【品质好酒极客】酱香型白酒为什么要用新酒加老酒勾调方法调制出来才好喝?
- 『冰哥笔记』八个步骤,教你高效写出一篇好文章第一步、确定主题第二步、罗列大纲第三步、搜集素材第四步、酝酿情感第五步、一气呵成第六步、检查
- ##极客美食;好吃不腻—网红版炒米粉
- [黑·客]黑客快评 | 长安UNI Life系统亮相 我为什么说这是一场『车懂人』的公开课
- #运动极客霸#“日系休闲风”,不知不觉影响到我们
- 「任天堂」不出门的时候,公园编辑部的同学们读了哪些书|极客在家