当前位置:网站首页>山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二十五)-项目个人总结
山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二十五)-项目个人总结
2022-06-12 17:12:00 【陌兮_】
项目个人总结
从寒假开始联系指导老师,选择题目,到今天(6.10号),历时四个月时间,我们团队通过很好的合作,完成了该项目。三月份对项目进行初步规划分析后,开始进行开题答辩,答辩通过后开始对系统整体架构、涉及到的主要技术点等进行详细的讨论研究,然后组内进行分工,通过组内不断讨论研究,并在指导老师的帮助下,我们最终攻克了一个又一个技术难点,最后完成了超出计划的目标,系统开题答辩时,制定计划为实现10个漏洞,我们最后的系统,实现了12个漏洞,共计28个靶场,还实现了12个工具,7个代码审计,以及WriteUp、教师端进行课程实验管理等功能。
本次项目实训的网络空间安全漏洞靶场使用Java作为主要开发语言,使用了现在工程环境最常见的Springboot + vue + mybaits的前后端分离框架。并且集成了NodeJS服务以及elementUI等css样式开发前端界面。在服务器的部署上,使用了docker进行封装打包。服务器使用了腾讯云的2核4G、6M宽带,CentOS 7.6操作系统,数据库使用了MySQL 5.6,JDK使用1.8版本,Docker使用的是Community 20.10.17。
由于项目中的各个靶机是一个具有漏洞的网页界面,所以需要进行有意识地防范,否则攻击者可以利用这些漏洞环境进而攻击我们的主机服务器,使得系统崩溃。为避免这种情况发生,经过讨论,我们提出了基于Docker动态部署靶场的方案,每一个用户在进行实验时,针对该用户的实验题目,动态的创建一个靶机容器,在用户提交flag以后,可以自行选择是否销毁该靶场,但是一个用户只能同时创建一个容器,所以该用户如果不对本题的容器进行销毁,那么他将无法创建新的针对其他题目的容器环境。以此防止有不法分子借助该平台复现的漏洞作为跳板对服务器进行攻击。使得系统整体的安全性得到保障。
在这个项目中,我主要负责部分漏洞靶机的开发,包含:RCE漏洞、SQL注入漏洞(包含括号型SQL注入、不安全的过滤SQL注入、未循环过滤的SQL注入)、文件上传、文件下载漏洞、xxe漏洞、java反序列化漏洞、重定向漏洞、逻辑越权漏洞。以及writeup模块的开发,部分工具的开发,包含:CMS指纹识别工具、子域名查询工具、ip查询工具、端口扫描工具。Docker容器的动态创建与销毁,整体项目的部署等。总计代码行数达到10000行左右。
通过这次的项目实训,收获颇多。首先是学习能力的提升。原来的开发项目中,我基本不会看官方文档,遇到问题基本就是在网上搜索一下解决方案。经过此次项目实训,学会了一些官方文档的查看,同时领会到了查看官方文档来解决问题的效率。其次是沟通能力的提升。本次项目实训,我们团队共有五名成员,每两个人之间可能都会或多或少有些交流。而我作为项目部署、容器动态创建与销毁的主要负责人,可能会与每个成员都有很多的交流。认识到团队开发中交流的重要性。最后是技术方面的提升。经过此次项目实训,学会了VUE、SpringBoot、MyBaits、Docker等主流框架与技术的基本原理与使用。学习到了大部分常见的基础漏洞原理,例如:XSS漏洞、XXE漏洞、RCE漏洞、任意文件上传漏洞、任意文件下载漏洞、逻辑越权漏洞、URL重定向漏洞、Java反序列化漏洞、SQL注入漏洞等,并可以自行搭建出各种漏洞的靶机环境。学会了相关网络空间安全工具的原理,例如:CMS指纹识别、IP查询、端口扫描、子域名查询等,并可独立完成该工具的实现。通过本次项目实训对网络空间安全领域的相关知识了解的更加深入。
最后本项目具有很大的实际意义,作为一个完整的项目,该网络安全靶场系统完全可以作为网络空间安全实验班的相关专业课程的实验平台,并且我们团队已经与负责教授“系统安全”、“网络攻击与防范”这两门课程的林老师进行了讨论交流,林老师对我们的项目很认可,并且承诺可以作为系统安全的实验练习平台,其中学生的完成情况可作为平时成绩纳入期末考核。
伴随着项目答辩的结束,本项目的主要开发工作已经结束,后续会针对老师的需求进一步维护系统。
边栏推荐
- 全局锁、表锁、行锁
- Fiddler抓包几种常用功能介绍(停止抓包、清空会话窗内容、过滤请求、解码、设置断点......)
- 1723. minimum time to complete all work
- Sizepolicy policy in layout management
- How to do a good job of testing in the company (do a good job of testing)
- selenium元素定位
- R语言使用pdf函数将可视化图像结果保存到pdf文件中、使用pdf函数打开图像设备、使用dev.off函数关闭图像设备、自定义width参数和height参数指定图像的宽度和高度
- Picture online collection and delivery system source code
- Li Kou today's question 926 Flip string to monotonic increment
- 反馈式编译
猜你喜欢
内核中断整体流程图
Sudo of uabntu
Male god goddess voting source code v5.5.21 voting source code
JVM内存模型与本地内存
1723. 完成所有工作的最短时间
邱盛昌:OPPO商业化数据体系建设实战
Application case of smart micro 32-bit MCU for server application cooling control
R language arma-garch-copula model and financial time series case
Record the use of yolov5 to detect rotating targets
Some introduction to FPC flexible circuit board design
随机推荐
软件工程 学生信息管理系统 结构化的需求分析
MySQL事务简介、事务隔离级别
Volcano engine held a video cloud technology force summit and released a new experience oriented video cloud product matrix
如何查看、修改和删除SSH
R语言使用epiDisplay包的pyramid函数可视化金字塔图、基于已有的汇总数据(表格数据)可视化金字塔图
2080 virtual machine login command
Analysis of CA certificate with high value
"Upgrade strategy" of two new committers
Tidb Hackathon 2021 - pcloud: conduct icloud pcloud team interview on the database
5、Embedding
Unit sshd.service could not be found
(六)控制语句if/else switch
Introduction to several common functions of fiddler packet capturing (stop packet capturing, clear session window contents, filter requests, decode, set breakpoints...)
Crazy temporary products: super low price, big scuffle and new hope
php 实现无限极分类树(递归及其优化)
R language uses ggplot2 to visualize the density graph (curve) of specific data columns in dataframe data, and uses Xlim parameter to specify the range of X axis
Compilation optimization of performance optimization
Sizepolicy policy in layout management
Basic knowledge of stock introduction: is fixed increase good or bad?
Schrodinger's Japanese learning applet source code