目录

一、什么是目录遍历漏洞?

二、后端实现

三、前端代码

四、效果图


前言:本篇博客主要记录目录遍历漏洞的实现。

一、什么是目录遍历漏洞?

目录遍历(也称为文件路径遍历)是一个Web安全漏洞,它使攻击者可以读取运行应用程序的服务器上的任意文件。这可能包括应用程序代码和数据,后端系统的凭据以及敏感的操作系统文件。在某些情况下,攻击者可能能够写入服务器上的任意文件,从而允许他们修改应用程序数据或行为,并最终完全控制服务器。

我做的目录遍历是针对图片浏览的,并将浏览文件先进行加密再展示出来。增加了做题难度。

并将flag写入图片,供做题者寻找。

二、后端实现

后端代码如下所示:

@RestController
public class PathTravelController {@AutowiredDataSource dataSource;public String sql;@RequestMapping("/pathtravel")public Result pathtravel(@RequestParam("username") String username)throws IOException {// 获取BufferedImage对象BufferedImage image = createImage(flag);File file = new File("vue/src/assets/img/bugimg/pathtravel/flag");String fileName = "flag.jpg";File jpgFile = new File(file,fileName);if(!jpgFile.exists()) {jpgFile.createNewFile();}// 创建图片输出流对象,基于文件对象ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(jpgFile);// 写入ImageIO.write(image,"jpg",imageOutputStream);// 关闭流imageOutputStream.close();System.out.println("图片写入完成,请查看!");}rs.close();connection.close();} catch (SQLException e) {System.out.println("输入内容错误,数据库查询错误 in flag");System.out.println(e.toString());//return "输入内容错误,数据库查询错误";}return Result.success();}}

将字符串转换为BufferedImage对象

将字符串写入图片的代码如下:

    /** @description: 将字符串转换为BufferedImage对象* @param: [strs]* @return: java.awt.image.BufferedImage* @author: fzj* @date: 2022/6/02 21:20*/public static BufferedImage createImage(String str) {// 设置背景宽高int width = 1000, height = 400;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 获取图形上下文对象Graphics graphics = image.getGraphics();// 填充graphics.fillRect(0, 0, width, height);// 设定字体大小及样式graphics.setFont(new Font("宋体", Font.BOLD,34));// 字体颜色graphics.setColor(Color.BLUE);// 描绘字符串graphics.drawString(str, 100,  100 );graphics.dispose();return image;}

三、前端代码

前端Vue界面代码如下:

<template><div class="building"><div class="menu"><el-row><!-- 按钮菜单部分 --><el-col :span="24"><el-menu:default-active="mypath"class="el-menu-demo"mode="horizontal"background-color="#fff"text-color="#000"active-text-color="#FF9912"@select="handleSelect"><el-menu-item index="/honeypot">  </el-menu-item><el-menu-item index="/abilitypromotion"></el-menu-item><el-menu-item index="/forum" ></el-menu-item><el-menu-item index="/navigation" >风景</el-menu-item><el-menu-item index="/coursemanagement" >美食</el-menu-item><el-menu-item index="/usermanagement" >动物</el-menu-item><el-menu-item index="/usermanagement" >人物</el-menu-item><el-menu-item index="/usermanagement" >建筑</el-menu-item><el-menu-item index="/usermanagement" >排行</el-menu-item></el-menu></el-col></el-row></div><div style=""><el-row style=""><el-col :span="8"><el-card class="card" id="img1" @click="goto('img1.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col><el-col :span="8"><el-card class="card" id="img2" @click="goto('img2.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col><el-col :span="8"><el-card class="card" id="img3" @click="goto('img3.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col></el-row></div><div style=""><el-row style=""><el-col :span="8"><el-card class="card" id="img4" @click="goto('img4.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col><el-col :span="8"><el-card class="card" id="img5" @click="goto('img5.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col><el-col :span="8"><el-card class="card" id="img6" @click="goto('img6.jpg')"><p style="font-size: 25px;text-align: right;background-color:gray;width:150px;margin-left: 250px;margin-top: 280px;">查看详情<i class="el-icon-right" style=""></i></p></el-card></el-col></el-row></div></div>
</template>

四、效果图

为了避免将做题步骤展示出来,仅将靶场界面展示如下:

山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(十六)相关推荐

  1. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(一)

    目录 前言 一.项目介绍 二.项目框架 三.个人分工 四.本周任务完成情况 4.1  Vue安装 4.1.1 node.js安装及配置 4.1.2 安装vue及脚手架 4.1.3 运行Vue项目 4. ...

  2. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(五)

    目录 一.header 二.footer 三.数据库的设计 3.1 表的设计 3.2 E-R图 一.header header是页面的导航条,作为一个组件在每个页面中都有引用. 其外观如下图所示:   ...

  3. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(十五)

    目录 一.任意文件读取漏洞 二.代码实现 2.1 FileRead.vue 2.2 FileReadController.java 三.界面展示 前言:本篇博客主要记录任意文件读取漏洞的靶场实现. 一 ...

  4. 山东大学网络靶场实验平台—团队进度(三)

    系列文章专栏地址: 山东大学网络安全靶场实验平台 本期目录 一.序言 二.网页设计 三.数据库设计 四.靶场设计 一.序言 本期,我们主要是完成了数据库设计,部分网页设计,以及部分靶场设计. 其中网页 ...

  5. 山东大学网络靶场实验平台—团队进度(四)

    系列文章专栏地址: 山东大学网络安全靶场实验平台 本期目录 一.序言 二.网页设计 三.漏洞页面设计 四.整合和发布1.0版本 一.序言 本期,我们继续对网页进行搭建,同时靶场模块引入了更多的漏洞页面 ...

  6. 山东大学软件学院项目实训-创新实训-SDUMeeting(一)

    山东大学软件学院项目实训-创新实训-SDUMeeting(一) 一.前言: 这个项目是山东大学视频会议项目,这个项目基于webrtc构建多人视频会议系统,我负责视频会议客户端及服务端安全防护,这个专栏 ...

  7. 山东大学软件学院项目实训-创新实训-SDUMeeting(三)

    山东大学软件学院项目实训-创新实训-SDUMeeting(三) 山大会议项目web安全之文件注入防护 一.前言 山大会议的客户端加入了对用户自定义头像的支持,需要用户自行上传头像图片,这个过程存在文件 ...

  8. 山东大学软件学院项目实训-创新实训-SDUMeeting(六)

    山东大学软件学院项目实训-创新实训-SDUMeeting(六) 端对端加密与密钥交换 端到端加密(end-to-end),是一种只有参与通讯的用户可以读取信息的通信系统.它可以防止潜在的窃听者--包括 ...

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

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

最新文章

  1. php ci框架分页类,nusoap 与 CI框架不用WSDL
  2. 微信小程序点击按钮实现弹出模态框
  3. 张军:围绕“WebRTC+AI+大数据”创新
  4. RabbitMQ 队列消息持久化
  5. html5播放视频只有声音不出现画面?
  6. [PAT乙级]1019 数字黑洞
  7. 希尔伯特变换_学习笔记1-傅里叶变换1
  8. 机器人踩滑板_不死神草、飞行滑板…超2000种创新发明在这里展出
  9. 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
  10. golang | 使用goroutine和channel实现一个计算int64随机数各位数和的程序。
  11. 吴恩达机器学习 12.异常检测
  12. 2010.11.25感恩节
  13. 在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)
  14. PHP设计模式——六大原则
  15. 金融危机和丘处机的关系
  16. 算法 动画算法 算法动画 动画原理——总体概览图
  17. [rtsp]海康IPC监控摄像头远程外网监控配置(DDNS)
  18. 2.flashFXP破解
  19. 5G通信网络专题报告:新一轮移动通信网络建设迎来高潮
  20. [ZT]智能客户端(Smart Client)

热门文章

  1. ios截屏功能html,滚动截屏APP - iPhone上的长截图工具
  2. Spring Cloud 高并发优化流程
  3. layui数据表格自动换行解决办法
  4. 01-RobotStudio新建系统
  5. vb中msgbox用法
  6. 关于Linux中批量配置SSH免密的一些笔记
  7. Keepalived + Nginx - linux 灾备方案(实现主备、热备)
  8. 灾备系统与备用服务器区别,服务器灾备方案是什么
  9. 阿里云数据库与传统数据库有何区别?
  10. qt 打印 刻度尺 曲线 复杂图像