一、任意文件读取
开局我们通过扫描器获得一个任意文件读取漏洞,并且可列目。我们来看下代码当中的漏洞点:
这里对传入的参数filename未做任何过滤,可直接进行文件读取。
1.思考
那么通过任意文件读取漏洞我们都可以做什么?
这里我进行了以下五种操作,来帮助我们进行下一步的漏洞挖掘。
(1)、查看用户历史命令 - /home/mbs/.bash_history
(2)、查看配置文件 -根据历史命令找到安装目录,查看conf文件
/opt/choice_install.sh
(3)、获取应用源码 -到安装目录下查看是否遗留安装包在服务器上
(4)、查看日志 -寻找登录相关信息 - /var/log/uusafe/mbs
(5)、数据库备份文件 -查看服务器是否存在数据库备份情况 - /db/
二、获取加密方式
当我们通过任意文件读取漏洞,读取到以上相关信息时,我们会发现以下几个问题:
问题1、日志当中的密码都是加密过的
问题2、存在Authorization认证字段,无法修改数据包进行爆破
问题3、数据库备份文件当中存放的密码为MD5加密,不能全部解密。
那么我们该如何解决前两个问题呢?我们有了源码后是否可以寻找到加密方式呢?
1.打开源码,尝试寻找加密方式
我们在源码中找到ThreeDes这样一个类,在这里我们可以看到其加密算法。