赞
踩
从寒假开始联系指导老师,选择题目,到今天(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查询、端口扫描、子域名查询等,并可独立完成该工具的实现。通过本次项目实训对网络空间安全领域的相关知识了解的更加深入。
最后本项目具有很大的实际意义,作为一个完整的项目,该网络安全靶场系统完全可以作为网络空间安全实验班的相关专业课程的实验平台,并且我们团队已经与负责教授“系统安全”、“网络攻击与防范”这两门课程的林老师进行了讨论交流,林老师对我们的项目很认可,并且承诺可以作为系统安全的实验练习平台,其中学生的完成情况可作为平时成绩纳入期末考核。
伴随着项目答辩的结束,本项目的主要开发工作已经结束,后续会针对老师的需求进一步维护系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。