『黑客与极客』通读审计之DOYOCMS( 四 )
可是问题来了 , 我们所包含类文件的路径是 /source , 而不是/source/admin/xxx.php
那么我们如何引入呢?不慌 。
本文插图
全局搜索一下哪里修改了$doyoConfig['view']['config']['template_dir']的值(该值影响包含路径)
在admin.php中重现了index.php的操作 。 只是略有一些不同
本文插图
那么我们SSRF漏洞利用点也只能在后台了 , 有一定的局限性
登陆后台后
我们包含a_sys.php文件并实例化该类 , 然后调用template_cache方法
本文插图
这里是传入的$y 。 我们再该文件内翻半天也不会翻到syArgs方法的 。
原因很简单 , 继承了一个类 。
本文插图
这里构造方法有了和template_cache方法相同的步骤
我们之前所看过的这个类的一个syArgs方法
可是在syController中也没有找到syArgs方法 , 那么我们就需要看一下__call魔术方法的处理了
本文插图
第48行
return syClass($name)->__input($args);
syClass我们之前了解到的功能就是进行包含syArgs这个类文件或实例化该类 , 随后调用__input方法 , 把我们__construct的$this->a=$this->syArgs(‘a’,1);中’a’,1以数组的形式传递给__input方法
本文插图
看一下get方法
本文插图
调用了has方法 , 把字符串’a’传递进去了
跟进has方法
本文插图
咦?多了一个成员属性$this->args
我们看一下构造方法是否初始化该属性
该类的构造方法
本文插图
args成员属性是$_REQUEST进来的变量
如果我们传入的?a=template_cache , 返回true
再回来看一下该分支结构
本文插图
继续跟进filters方法
本文插图
看到该方法是用来过滤传入数据内容的 。 在其中的 case 0 , 1,2,3,4,5,中 , 可以看到都对传入的数据进行过滤操作 。 可是在case 2中 , 漏洞出现了 。 这里涉及到array_walk_recursive函数利用问题 。
本文插图
看着arrays方法的代码块 , 好像过滤的还挺全的 。 不仔细想一想还真不知道 。
array_walk_recursive函数并不会影响到数组本身 。 例如:
本文插图
可以看到我们放入的 test=>’aaa , 单引号并没转义 。 好了 , 现在了解到syArgs的第二个参数存在未过滤问题 。
推荐阅读
- 「汽车」福特、大众畅销车曝安全漏洞,黑客可窃取隐私、操控车辆
- 『界面新闻』黑客能入侵你的梦境了,MIT梦境实验室开发出现实版“盗梦空间”
- [福特]福特、大众被曝网络安全漏洞 黑客还能禁用车辆的刹车系统
- #极客视角#精致旗舰华为P40 :玲珑机身蕴藏影像力大乾坤
- 【品质好酒极客】酱香型白酒为什么要用新酒加老酒勾调方法调制出来才好喝?
- 『冰哥笔记』八个步骤,教你高效写出一篇好文章第一步、确定主题第二步、罗列大纲第三步、搜集素材第四步、酝酿情感第五步、一气呵成第六步、检查
- ##极客美食;好吃不腻—网红版炒米粉
- [黑·客]黑客快评 | 长安UNI Life系统亮相 我为什么说这是一场『车懂人』的公开课
- #运动极客霸#“日系休闲风”,不知不觉影响到我们
- 「任天堂」不出门的时候,公园编辑部的同学们读了哪些书|极客在家