Drupal的数据库配置文件

时间:2023-02-12 17:58:27

至此,我们已经拿到了这个靶机中的4个flag:flag1、flag3、flag4以及thefinalflag,但是还有flag2没有拿到。

联想到之前flag1给出的提示:

Every good CMS needs a config file
1.
那么flag2很可能是藏在网站的数据库配置文件中。

关于数据库配置文件在上个靶机中已经介绍过,这里再回顾一下。

由于网站中的绝大部分数据都是保存在数据库中,所以网站必须要能够对数据库进行增删改查等操作,而要操作数据库,就必须得提供数据库的连接地址以及管理员账号和密码等信息,所以在大多数网站中都会通过数据库配置文件来提供这些信息。

这个数据库配置文件毫无疑问具有很高的安全价值,所以如何查找数据库配置文件也是在shentou过程中一个比较重要的操作。当然对于Drupal这类使用CMS的网站,如果管理员没有刻意更改的话,那么数据库配置文件的路径应该是固定的,这个很容易找到。

比如对于Drupal,通过百度很容易就能查到数据库配置文件的路径:

/sites/default/settings.php
1.
当然这个路径中的起始位置是网站的根目录,而不是Linux系统的根目录,这个要注意区分。当前靶机的网站主目录是/var/www,所以配置文件的绝对路径就是/var/www/sites/default/settings.php。

查看配置文件,在头部就可以看到flag2:

至此,我们虽然已经拿到了这个靶机中的所有5个flag,但是在这个靶机中还提供了其它一些可以用来获取flag的方法,下面我们再继续把这些方法以及其中所涉及的知识点也介绍一下。

在数据库配置文件中我们可以获得数据库的管理员账号和密码:dbuser/R0ck3t。

首先在/etc/passwd中查找dbuser,没有结果,说明系统中并不存在这个用户账号,这样就不要考虑撞库了。

下面我们利用这个账号来登录MySQL,执行命令mysql -udbuser -pR0ck3t:

网站中的数据大部分都是存放在数据库中,在这些数据里我们最关心的毫无疑问是网站的管理员账号和密码,下面我们就尝试在数据库里查找这些信息。

执行use drupaldb;打开数据库,执行show tables;查看数据库中的表,其中名为users的表应该是用来存放网站用户信息的,执行desc users;命令查看该表中包含的字段,然后再查看指定字段中的数据,确实是存放的网站中的用户名和密码:

这些密码很明显是经过加密处理后的密文,而我们需要的是解密后的明文。

由于本课程是面向初学者的入门课程,很多同学可能对像MD5这种在网络安全中最常见的加密方式也不甚了解,所以下面将分别介绍一些关于加密和解密的基础知