文件下载漏洞原理
假如网页上有文件下载的一个功能点,但是没有对用户可下载文件类型进行一个限制,就会构成问价下载的一个漏洞。
利用条件:
1.用户可控下载地址
2.用户知道想要下载的文件路径,以及在哪个文件夹下
3.服务端对下载文件没有限制
注入点:
1.url参数查找
• download.php?path=
• download.php?file=
• down.php?file=
• data.php?file=
• readfile.php?file=
• read.php?filename=
2.功能点查找
漏洞利用流程
1.找到注入点
2.测试是否可以任意文件下载
3.收集网站已知文件 // 就拿pikachu靶场举例
已知文件的含义就是除了当前下载文件,其他页面也能直接显示的文件。
然后分析其他文件的源码,进行审计,看有没有可以利用的点。(这里面的难点就是找到文件的路径)
4.通过工具进行后台分析,找出可以下载文件,进行信息收集或者源码分析。
5.读取下载敏感文件。
敏感文件目录
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参数