『黑客与极客』通读审计之DOYOCMS( 三 )
本文插图
自改了session存储机制 。 注意看write方法 。 写入session操作 。
看到在file_put_contents写入前拼接了” ”关键字 。 首先我们想到php://filter进行绕过 。 但是我们可以看到前面拼接了一个$filedir 。 $filedir变量是路径信息 。 不可控 。 则php://filter无法绕过 。
file_put_contents在windows下我们可以进行写入冒号文件流的格式 。 例如:xxx.php:.php 。 可以逃逸 。 但是生成后的文件却是空的 。 再进行xxx.php<<
我们没有任何机会来通过session文件来getshell
但是从另一个角度讲 , file_put_contents函数是由fopen函数与fwrite函数封装起来的 。 使用了’w’的写入规则 。
本文插图
比如 , 这里有一个1.php 。 文件内容为123 , 当你file_put_contents(‘1.php’,’xxx’);的时候 , 1.php文件内容”123”会被替换为我们传入的”xxx”
再来看看程序自写的session存储机制居然没有对路径做任何过滤 。
那么就比较有趣了 。 我们可以通过修改session的值 。 来进行替换任何文件 。
本文插图
就可以成功把根目录下的 /include/inc.php 文件内容给替换掉 。 include/inc.php 文件内容为网站配置 。 该框架中有运行 。 再结合之前程序写入session文件内容所定义的 。 可以导致网站无法正常访问 。 (被die暂停程序运行) 。
验证漏洞结果:
本文插图
三、继续观察MVC
我们再回到functions.php文件进行读取第11行
$handle_controller = syClass($__controller, null, $GLOBALS['G_DY']["controller_path"].’/’.$__controller.”.php”);
进行syClass函数处理 。 我们之前了解到syClass方法是用来处理类文件并包含的 。
本文插图
传入的第三个参数亮了 。
本文插图
根据我们传递的参数 , 则/source/$_GET[‘c’]是我们所包含的文件 。 我们在source文件夹下创建test.php进行验证一下
本文插图
看来逻辑是没有问题的
接着我们继续往下看functions.php文件的第16行
本文插图
这样来 , 我们整个的处理逻辑搞清楚开始挖掘漏洞
四、SSRF漏洞
当前我在functions.php这个文件 。 既来之 , 则安之 。 我通过危险自定义的一些方法来寻找漏洞
我从functions.php文件的第100-117行发现了
本文插图
该函数传入的$url如果没有严谨的过滤 , 则会造成SSRF漏洞
全局搜索一下这个函数 。
本文插图
看到大名鼎鼎的a_sys类文件($_REQUEST[‘c’])与调用该漏洞的方法($_REQUEST[‘a’])
本文插图
推荐阅读
- 「汽车」福特、大众畅销车曝安全漏洞,黑客可窃取隐私、操控车辆
- 『界面新闻』黑客能入侵你的梦境了,MIT梦境实验室开发出现实版“盗梦空间”
- [福特]福特、大众被曝网络安全漏洞 黑客还能禁用车辆的刹车系统
- #极客视角#精致旗舰华为P40 :玲珑机身蕴藏影像力大乾坤
- 【品质好酒极客】酱香型白酒为什么要用新酒加老酒勾调方法调制出来才好喝?
- 『冰哥笔记』八个步骤,教你高效写出一篇好文章第一步、确定主题第二步、罗列大纲第三步、搜集素材第四步、酝酿情感第五步、一气呵成第六步、检查
- ##极客美食;好吃不腻—网红版炒米粉
- [黑·客]黑客快评 | 长安UNI Life系统亮相 我为什么说这是一场『车懂人』的公开课
- #运动极客霸#“日系休闲风”,不知不觉影响到我们
- 「任天堂」不出门的时候,公园编辑部的同学们读了哪些书|极客在家