网鼎杯线下半决赛 faka 题目复盘

半决赛没有做出来,感觉有些遗憾。因此还是决定下来复盘一下。

情景再现

比赛时的想法

题目源码结构

image-20201129230432131

其实在拿到源码时就不断揣测出题人的意图

题目中的 hint 也给到:www-data 权限用户可写目录只有 runtime 跟 static。所以当时就想好了审计的重点:

  1. 各类文件操作函数 + 写入路径可控
  2. RCE + file_put_contents (如果真能RCE,貌似也不用写shell,直接读就行)
  3. SQLi

然后 html 下面给到了 1.txt 里面的信息是注册邀请码

image-20201130113423226

当时还以为这么明显的提示一定是暗示什么(结果好像这个txt并没有什么用?),还以为是从index.php/register 利用注册码进去,然后打 /merchant。结果在 /merchant 找了半天也没找到漏洞点。

然后看到跟 html 同级目录下的 tk.sql

image-20201130113351974

当时找到了md5之后以为能进后台。但是现场还是断网环境(WTF?那我怎么解?)用常见弱密码单向生成后比对也没有发现有相同的。同时还不能爆破后台,也没什么万能密码这类的东西。

然后当时题目环境还是 tp5.0.14。RCE 貌似ban了好多函数。当时妄想通过非预期解一下题目。

最后还是坚信漏洞点在: /merchant 下面。一下午的时间就在 /merchant 的审计和 tp5 RCE 的绕过度过了…

赛后实验室的小伙伴 @jokuuy 告诉我后台部分功能点未授权 orz。而且之前他审过这个 CMS,据说10s可以秒掉23333

image-20201130155105699

反思和小结

当时没考虑到未授权…未授权的话可以直接利用很多后台的漏洞(当时就看到了manage/backup 那个点),但是没有进到后台。所以没有能够利用到manageadmin 两个目录下的代码。

image-20201130150358458

题目分析

获取后台权限

http://wdb-vul/index.php/admin/index/info 未授权添加用户

image-20201130151254446

image-20201130151507883

之后访问某些存在漏洞的路由会发生这样的情况

image-20201130151800748

提示权限不够。

在 SQL 列中,authorize 起到了权限限制的作用

image-20201130152235493

回溯 authorize 的控制

application/admin/controller/Index.php#info

image-20201130152416366

跟进 _formcallback 调用 _form_filter

image-20201130152519359

跟进 _form_filter

image-20201130152612313

说明直接 POST 参数即可。

image-20201130153248088

image-20201130153259922

任意文件读取

application/manage/controller/Backup.php#downloadBak

image-20201130153740566

finename可控,目录穿越

Exp:

http://wdb-vul/index.php/manage/backup/downloadBak?file=../../../../../../../../../Users/p2hm1n/Desktop/flag

文件上传

发现先知已经有师傅写了一个文件上传的漏洞点了 https://xz.aliyun.com/t/7838

跟着复现分析一波。

application/admin/controller/Plugs.php 主要是文件上传的一些校验。

上传的时候会先调用 upstate,主要作用如下:

  1. 将通过 POST 传入的 md5 值以16位字母为间隔进行分割,并拼接传入filename 的后缀
  2. 检测文件是否上传
  3. 生成 config 数组,并添加每一个键的值

image-20201130193500442

之后调用 upload ,这里看文件上传处理的位置

image-20201130212324561

跟进 move

image-20201130212827808

跟进 buildSaveName

image-20201130212940148

final POC

image-20201130192319757

image-20201130192330685

上传至 static 目录

image-20201130192305239

image-20201130192722214

Shiro-550 rememberMe 反序列化漏洞分析 ECShop 3.6.x RCE 漏洞分析
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×