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

目录

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

二、后端实现

三、前端代码

四、效果图


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

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

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

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

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


二、后端实现

后端代码如下所示:

@RestController
public class PathTravelController {

    @Autowired
    DataSource 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>

四、效果图

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
油气SCADA网络安全靶场是为了评估和提高油气行业的SCADA系统对网络攻击的防御能力而创建的虚拟环境。SCADA系统是指监控和控制工业过程的计算机系统,而靶场是用于模拟实际网络环境和攻击场景的训练平台。 油气行业的SCADA系统在供气、输油、储气等方面起着重要作用,一旦遭受到网络攻击,可能导致供气系统中断、油管泄漏等严重后果。针对这种威胁,油气SCADA网络安全靶场被设计成一个实验环境,用于测试系统的弱点并针对可能的攻击进行演练。 油气SCADA网络安全靶场通常由虚拟化技术构建,包括模拟工业控制过程、仿真网络、安全设备等。通过在靶场中模拟真实的油气SCADA系统,可以对系统进行各种攻击测试,包括入侵、拒绝服务、数据篡改等。同时,靶场还提供了实时监控和日志记录功能,以便分析攻击的过程和损害。 通过使用油气SCADA网络安全靶场,油气行业可以评估其SCADA系统的安全性,并进行相关的改进和加固。实施网络安全演练和针对不同攻击场景的模拟,有助于提高系统管理员和操作人员的应急响应和处置能力。此外,靶场还可以用来培训网络安全专业人员,加强他们对油气行业SCADA系统的理解和保护技术。最重要的是,油气SCADA网络安全靶场的建立将为油气行业提供对网络威胁的认识和预防,提高整个行业的网络安全水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值