banner
NEWS LETTER

禅知1.6文件读取漏洞攻击与利用

Scroll down

靶机介绍

首先进入靶机,得到以下线索:

1
2
3
4
这该死的黑客为了拿到flag,把环境破环成这个鬼样子啦。
这个黑客以root身份进入到了服务器拿到了flag
奥对了,听说这个版本是禅知1.6哦
提示:命令历史

通过这些线索,我们得知了黑客使用了root权限,并且该靶机是禅知1.6版本。但是我们还需要更多的信息来进行推理和查找。

禅知1.6介绍

我们需要先了解一下禅知1.6是什么,它是一款企业级开源知识管理系统,提供集中式的知识管理平台,支持多语言、多平台,具有高度的可扩展性和灵活性,方便员工共享知识和信息,提高工作效率和协作效果。

禅知1.6的漏洞

根据题目给出的线索,我们知道禅知1.6存在一个BUG,可以在前台任意文件读取。而file主要用于上传和管理文件,用户可以在任务、需求、Bug等模块中上传相关的文件,方便团队成员查看和下载。同时,管理员可以在文件管理模块中对上传的文件进行管理,包括删除、重命名、移动等操作。因此,我们可以在靶机地址上输入https:xxxxxx.com/file.php查看文件,但是发现file被删除了。

文件查找

我们需要在禅知1.6的根目录下找到config.php文件,因为大部分的软件配置文件几乎都是config的方式命名。但是我们发现直接修改https:xxxxxx.com/file.php?pathname=../config.php&t=txt&o=source没有任何文件返回,说明这个目录下没有这个文件,有的软件为了文件管理会创建一个叫做config的文件夹,再将config文件放入。因此,我们需要修改https:xxxxxx.com/file.php?pathname=../system/config/config.php&t=php&o=source,这时得到了config的配置。

  • 问号(?)表示查询字符串的开始。
  • pathname参数则是告诉服务器需要访问的文件路径。
  • ../file.php表示需要访问file.php的上一级目录,也就是禅知1.6的根目录。
  • t=txt 表示文件类型为 txt,即该文件是一个纯文本文件。
  • o=source 表示输出方式为 source,即该文件以源代码格式输出。

查找账号和密码

我们需要读取my.php来获取账号和密码,因为my.php存放账号和密码。我们直接修改https:xxxxxx.com/file.php?pathname=../system/config/my.php&t=php&o=source,得到账号和密码都是root。

查找命令历史

题目给出提示为命令历史,因此我们需要寻找命令历史的位置。根据Chatgpt的回答,命令历史上一级地址一般都是home目录或者用户。因此,我们已知用户是root,那么payload就可能是root/.bash_history。我们直接修改https:xxxxxx.com/file.php?pathname=../../root/.bash_history&t=php&o=source,发现没有任何东西,根据Chatgpt的回答,在Linux中,使用“..”表示返回上一级目录,使用“../..”表示返回上两级目录,以此类推。即使已经返回到最顶层目录,输入“../”也不会出错,只是会保持当前目录不变。因此,我们需要再加一个../,即https:xxxxxx.com/file.php?pathname=../../../root/.bash_history&t=php&o=source,这时得到了关键线索。

查找flag

我们已经得到了命令历史,从cat flllllllllllllllll1ag得知flag的文件名叫flllllllllllllllll1ag,直接在payload构建并打开https:xxxxxx.com/file.php?pathname=../../flllllllllllllllll1ag&t=php&o=source,这时flag就拿到了。

得到flag

最终我们得到了flag:DASCTF{23056658435594732796840259987780}。

其他文章
cover
课程作业例题
  • 23/03/07
  • 19:08
  • 课程笔记
请输入关键词进行搜索