在一个月黑风高的晚上,我看着我的浏览器在静静发呆,唇角微微一笑,内心其实在狂喜,好开心。
预知后事如何,且继续往下看。
其实是因为我刚刚利用浏览器直接把一个数据库文件给下载下来了,里面好多小姐姐的QQ号,感觉做了不得了 的事情,才有上述诡异的现象产生。
我使用的是任意文件读取漏洞,因此下载到了数据。
照例解释一下原理。
一、原理
大家来回想一下,我们是不是经常下载文件呢?
对,我认为答案必然是肯定的,下载无处不在,网盘下载文件,网站链接下载文件等等。
为什么啊?
问题明显就出现在这里了,很多网站由于需要提供下载的功能,这种功能会带来很不幸的消息,不管是为了节省成本或者其它的一些未知原因,总之就是代码里面没有对这个下载路径做一些限制,直接通过绝对路径就可以下载文件,然后黑客就可以利用这个缺陷下载服务器的私密文件,也就是上述我说的小姐姐的联系方式。
那么具体方式指的的是哪些呢?
比如说是附件/文档/图片等等,只要可以被下载到的资源,这些都可以算进去。
好好回想一下,都有哪些常用的就可以明白了。
本文因为环境不方便部署的原因,只做一个基于windows的漏洞复现。
对了很多时候使用一种方式来演示一个任意文件读取漏洞,这个验证方式叫做POC。
解释一下POC是什么。
是Proof of concept的缩写,在黑客圈是指,观点验证程序,运行这个程序可以得出预期的结果,从而验证出来观点,正确还是错误。
简单说就是验证有没有存在,是一个编写好的程序。
二、场景
应用的地方就是上述我提到的,获取联系方式只是其中一种,主要会有网站后台登录密码等关键信息。
我们看一下格式,这是之前讲到过的GoogHacking的一篇文章里面的手法,具体的自己翻一下文章。
inurl:"readfile.php?file="
inurl:"download.php?file="
inurl:"read.php?filename="
早期的文章或多或少的提到过,网站一般是部署在windows或者Linux服务器上面,当然了,很多都是在Linux服务器上面,这也就导致读取路径有了一些差别,如果想灵活利用,那么这些路径你需要牢牢记住,下面来看一下具体的区别。
windows:
C:oot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件
C:Windows epairsam //存储系统初次安装的密码
Linux:
/etc/passwd
/etc/shadow
/etc/hosts
/root/.bash_history //root的bash历史记录
莫名的很亲切。
说白了,这种漏洞利用方式的前提是,你需要对网站的结构很了解,这样才能知道一些目录的路径位置所在。
照例接下来是一个实验,由于环境原因,这次使用windows的任意文件读取漏洞,下面是实验。
三、实验
来演示一个基于windows系统的读取。
创建两个账号:zhongpei和zhongpeitest账户。
接下来分别登陆两个账号,进行测试,对了这个验证方法是POC。
先说一下思路,先使用账号zhongpei登陆,并且创建一个txt文件,然后写入一些信息,最后使用test的测试账号读取出来这个信息。
1、写信息
登陆zhongpei账号,并且创建一条信息,叫做welcome to zhongpei!
2、读信息
使用测试账号zhongpeitest进行任意文件读取操作。
心里默默的说一句,so easy,看好了。
成功读取到了,这个演示windows读取方式。
四、总结
任意文件读取漏洞就是下载限制不严格导致的,严重的直接读取数据库的信息,很危险。所以网站权限需要注意,可以设置为Root。
windows的敏感信息:
C:oot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件
C:Windows epairsam //存储系统初次安装的密码
C:Program Filesmysqlmy.ini //Mysql配置
C:Program Filesmysqldatamysqluser.MYD //Mysql root
C:Windowsphp.ini //php配置信息
C:Windowsmy.ini //Mysql配置信息