目录

  • 前言:
  • 一、任意文件下载
    • 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:\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如需登录到远程主机,需要到.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 导入相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>FileDownload</artifactId><version>0.0.1-SNAPSHOT</version><name>FileDownload</name><description>FileDownload</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- springboot 热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十三)-任意文件下载漏洞(1)相关推荐

  1. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二)-docker安装与学习

    目录 前言: 一.docker安装 1.centos7使用yum安装 二.命令行创建 docker 容器测试 前言: 项目实训立项通过后的几天均在学习 docker 的相关知识,上一篇文章也简单记述了 ...

  2. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(六)-SQL注入数字型

    目录 前言: 一.SQL 注入漏洞简介 1.简介 2.危害 3.利用 4.防范 二.相关配置 三.编写"SQL 注入漏洞-数字型注入"后端代码 1.使用 springboot 框架 ...

  3. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(八)-RCE漏洞

    目录 前言: 1.RCE 漏洞简介 1.1.简介 1.2.危害 1.3.利用 1.3.1.漏洞挖掘 1.3.2.windows下管道符 1.3.3.linux下管道符 1.4.防范 2.相关配置 3. ...

  4. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(七)-SQL注入字符型

    目录 前言: 一.简介 二.项目配置 三.代码编写 四.运行测试 前言: 前面完成了 SQL 注入漏洞的数字型输入,其实 SQL 注入漏洞还有很多其他类型的注入,例如:字符型注入.宽字节注入等,相应的 ...

  5. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十)-Java反序列化漏洞(2)

    目录 前言: 2.项目配置 3.编写"java 反序列化漏洞"后端代码 4.编写"java 反序列化漏洞"前端代码 5.运行测试 前言: 本篇文章在上一篇文章基 ...

  6. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十四)-任意文件下载漏洞(2)

    目录 前言: 3.编写"任意文件下载漏洞"后台 4.编写"任意文件下载漏洞"前台 5.运行测试 前言: 前面的博客记录学习任意文件下载漏洞相关知识,并思考如何构 ...

  7. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(三)

    目录 前言 主页面的实现 新增用户 修改用户信息 删除用户 查询用户 前言 首先我要完成的是系统中的用户管理功能,实现对用户的增删改查,以及利用Element-Ui完成对应前端页面的搭建,这篇文章记录 ...

  8. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二十二)-子域名查询

    目录 2.1.工具简介 2.2.后端实现代码 2.3.前端实现代码 2.1.工具简介 子域名是相对域名根来说的,如baidu.com是域名根,则1234.baidu.com为子域名不同服务级别,也就是 ...

  9. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二十三)-CMS识别

    目录 3.1.工具简介 3.2.后端实现代码 3.3.前端实现代码 3.1.工具简介 在对「靶标资产」进行渗透测试的前期,通常需要对「靶标资产」进行相关的信息收集,而对「靶标资产」进行Web指纹信息扫 ...

最新文章

  1. 微软向.NET开发者开放Windows Phone 7 Market
  2. 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析
  3. 刚从阿里面试回来已拿到offer想和大家分享一下(阿里面试经验)
  4. python namedtuple (命名元组)用法详解
  5. c/c++的“大小,长度
  6. [Winform]安装在C盘,无操作权限的一个解决办法
  7. R语言数据转换——plyr包
  8. OpenCV辅助对象(help objects)(3)——Ptr
  9. CentOS 7在虚拟机上安装之后没有桌面问题
  10. 【JavaScript框架封装】使用Prototype给Array,String,Function对象的方法扩充
  11. VISSIM二次开发(Python)大作业总结2
  12. 一个好用的在线画图工具
  13. 使用Word 2003“格式→外文版式→带圈字符”功能可以输入10以上带圈序号。
  14. 使用poedit汉化wordpress的插件
  15. Unity中的资源管理-资源类型和基本使用
  16. VT100 终端控制码
  17. Wireshark实验 - TCP
  18. Linux文件系统(一)——常用文件系统
  19. 70.爬楼梯(简单)
  20. 海外社交媒体平台如何选择

热门文章

  1. 【SQL编写实战】查询部门工资前三高的所有员工
  2. 我的Android进阶之旅------gt;Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能...
  3. Rancher Prime 为平台工程提供面向 K8s 的弹性能力
  4. tp6------------obs存储服务
  5. python计算狗的年龄_狗狗与人年龄换算表,终于知道狗狗多大了!
  6. 广电总局: 禁未成年直播打赏
  7. Linux环境hdparm 工具使用
  8. azure云服务使用方法_在Azure Kubernetes服务上使用HashiCorp Consul
  9. LISP 圆孔标记_AUTOLISP编程实现正交开孔圆管展开图快速绘制
  10. 在滴滴和头条干了2年开发,我的总结与感悟