- 前言:
- 一、任意文件下载
- 1、任意文件下载漏洞简介
- 1.1、简介
- 1.2、危害
- 1.3、利用
- 1.4、防范
- 2、项目配置
前言:
前面的博客记录了关于文件上传漏洞的基础知识,以及基本的漏洞出现点、利用方式、以及如何防护等,并在此基础上思考如何构造一个文件上传漏洞靶场,以及文件上传漏洞靶场的实现过程。
接下来实现的漏洞靶场为任意文件下载漏洞,本篇博客仍然是首先学习任意文件下载漏洞相关知识,并思考如何构造任意文件下载漏洞环境。
一、任意文件下载 1、任意文件下载漏洞简介 1.1、简介
由于业务需求,很多网站往往需要提供文件(附件)下载的功能块,某些文件下载功能实现过程是,根据参数filename的值,获得该文件在网站上的绝对路径,读取文件内容,发送给客户端进行下载。但是如果对下载的文件没有做限制,直接通过绝对路径对其文件进行下载,那么,恶意用户就可以利用这种方式下载服务器的敏感文件,对服务器进行进一步的威胁和攻击。
1.2、危害
通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等。
通过上面的简单介绍,可以看出任意下载漏洞是很常见的,如果对用户查看或下载的文件不做限制,就又可能被利用,从而造成损害,接下来就来学习下任意下载漏洞是如何利用的
1.3、利用
- 获得站点源码(黑盒 -> 白盒)
- 获得站点与中间件配置文件
- 获得应用于系统配置文件(ssh、mysql)
从链接上看,类似这些,有可能就存在任意下载漏洞(php 语言,其他的也是类似的)
download.php?path= download.php?file= down.php?file= data.php?file= readfile.php?file= read.php?filename=
任意下载漏洞可以通过谷歌来进行搜索
inurl : readfile.php?file= inurl : download.php?file=
从参数名上看,大致有:
&readpath= &filepath= &Path= &inputfile= &url= &Lang= &dis= &data= &readfile= &menu= META-INF= WEB-INF
linux和Windows下载利用文件
windows:
C:boot.ini //查看系统版本 C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件 C:Windowsrepairsam //存储系统初次安装的密码 C:Program Filesmysqlmy.ini //Mysql配置 C:Program Filesmysqldatamysqluser.MYD //Mysql root C:Windowsphp.ini //php配置信息 C:Windowsmy.ini //Mysql配置信息 C:Windowswin.ini //Windows系统的一个基本系统配置文件
linux:
root/.ssh/authorized_keys如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去 /root/.ssh/id_rsa//ssh私钥,ssh公钥是id_rsa.pub /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参数
1.4、防范
- 下载路径不可控,而是程序自动生成后保存在数据库中,根据 ID 进行下载
- 对参数做严格的过滤,不能进行目录遍历(穿越)
2、项目配置
新建一个 springboot 项目,相关设置与前面的漏洞示例都相同。
编写 application.properties:
spring.thymeleaf.prefix = classpath:/templates/
pom.xml 导入相关依赖
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.5 com.example FileDownload 0.0.1-SNAPSHOT FileDownload FileDownload 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-devtools true org.springframework.boot spring-boot-maven-plugin



