任意文件读取与下载漏洞

1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件查看漏洞
3.提示下载,则是文件下载漏洞

 漏洞利用方式:

利用../../(返回上次目录)依次猜解,让漏洞利用变的猥琐。

Windows:
C:\boot.ini       //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml       //IIS配置文件
C:\Windows\repair\sam       //存储系统初次安装的密码
C:\Program Files\mysql\my.ini       //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD       //Mysql root
C:\Windows\php.ini       //php配置信息
C:\Windows\my.ini       //Mysql配置信息
C:\Windows\win.ini       //Windows系统的一个基本系统配置文件

Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/etc/my.cnf       //mysql配置文件
/etc/httpd/conf/httpd.conf       //apache配置文件
/root/.bash_history       //用户历史命令记录文件
/root/.mysql_history       //mysql历史命令记录文件
/proc/mounts       //记录系统挂载设备
/porc/config.gz       //内核配置文件
/var/lib/mlocate/mlocate.db       //全文件路径
/porc/self/cmdline       //当前进程的cmdline参数

 详细利用思路

JSP站点
尝试下载tomcat-users.xml文件,里面保存了管理Tomcat的账号密码,该文件在:Tomcat安装目录/conf/tomcat-users.xml

下载该文件之后,就能获取管理员账号密码,然后登陆管理后台,部署带有木马文件的war包。

aspx站点
aspx站点一般后台都是SQL Server数据库,因此利用该漏洞的最简单的方法是下载网站根目录下的web.config文件,该文件中一般含有数据库的用户名和密码

asp站点
一般的asp站点都是Access数据库,而Access数据库可以直接下载,因此利用该漏洞比较简便的方法就是直接下载Access数据库

找到管理员密码登陆后台,利用后台的上传功能,上传shell。

首先目的是找到数据库文件名以及存放的路径。找到网站与数据库操作的动态页面,动态页面中一般使用include包含连接数据库的配置文件。

一般网站的管理后台页面会包含这个信息,所以可以使用任意文件下载漏洞下载管理后台页面,例如admin.asp/mamage.asp等。

在这些文件中一般会写有数据库文件的路径以及文件名。再去下载找到数据库路径下载

直接下载数据库文件可能下载不了,因为管理员一般会做限制,禁止直接下载mdb文件,可以使用任意文件下载漏洞来下载数据库文件。

php站点
php一般是使用MySQL数据库, 一般MySQL数据库禁止远程连接,但是可以使用phpMyAdmin进行管理。

同意,尝试下载数据库连接文件,conf/config.php等等,获取数据库账户密码之后,如果是root权限,在知道网站绝对路径的情况下,尝试直接写入一句话木马

下载和读取的目的都是一样,获取服务器的敏感信息
当然还可以有很多用途,反正尽量把所有重要的配置文件以及代码走一遍流程,尽可能最大化的渗透进去

修复方案
1.过滤../等敏感字符,使用户在url中不能回溯上级目录
2.文件下载时判断输入的路径,最好的方法是文件应该在数据库中进行一一对应,避免通过输入绝对路径来获取文件
3.php.ini配置open_basedir限定文件访问范围

 

posted @ 2020-03-20 17:39  求知鱼  阅读(2406)  评论(0编辑  收藏  举报