一种网络攻防在线实训OJ系统及方法技术方案

技术编号:34530210 阅读:12 留言:0更新日期:2022-08-13 21:22
本发明专利技术提供了一种在线攻防的OJ实训系统及方法,该系统包括系统设置模块、登录注册模块、题目管理模块、答题模块以及动态靶机模块,其中所述动态靶机模块用于用户对拥有动态靶机功能的题目创建对应靶机,用户可以对自己创建的靶机进行关闭和重启,管理员可以查看、重启、关闭所有已经创建的靶机。对于一些需要靶机的题目,可以管理员在建立好基础镜像之后,可以让用户进行答题的时候自行开启靶机;题目分数随着答出题目的人员增加而减少,可以让成员知道题目的难易程度,积分系统设置合理。该系统兼容性强,在复现比赛题目的场景或者训练学生网络安全技术,为学生在课堂学习中对于专业技术提供训练平台。业技术提供训练平台。业技术提供训练平台。

【技术实现步骤摘要】
一种网络攻防在线实训OJ系统及方法


[0001]本专利技术涉及网络攻防
,尤其涉及一种网络攻防在线实训OJ系统及方法。

技术介绍

[0002]国内CTF比赛平台大都是解题模式下的训练,即对已经搭建好的靶机中运行的网站进行攻击,可以获取靶机服务器的权限,从而可以任意修改服务器里的内容,通过这种方式,“解题”模式判定得分通过服务器下的名字为“flag”文件,此文件不可通过正常访问网站得到里面的内容,最后其flag交到比赛平台的对应题目解答,就可获取对应分数,最终通过积分排名。但题目的难度系数通常是不可控的,所以会有动态分数的形式,即一道题目被解出得越多,其分数就会越低。目前集训队对CTF的训练需要优化不错的解题平台,同时考虑到平台的不断优化和增加新功能(如动态靶机功能),考虑python语言的灵活性,所以准备将平台的初始框架定为Flask,参考运用到Flask框架的文献,其性能不逊于thinkphp框架,并且在有需求的时候可以加入多线程模式,提高平台的响应速度。
[0003]总之,综上背景阐述,发现目前此方面的技术还存在以下问题:1.未用采用更加成熟的框架,使搭建出来的系统性能十分依赖硬件资源;2.所采用的框架目前尚有未知漏洞的可能性更高,后期维护将十分不方便;3.采用的语言兼容性不及python,为接下来开发新功能设置了一定的阻碍;4.特殊题目需要给用户权限开启动态靶机的功能未出现。

技术实现思路

[0004]本专利技术的目的在于提供一种网络攻防在线实训OJ系统及方法,从而解决现有技术中存在的前述问题。
[0005]为了实现上述目的,本专利技术采用的技术方案如下:
[0006]一种网络攻防在线实训OJ系统,采用bootstrap作为前端框架,flask为后端框架,基于python语言、docker技术以及frp技术获得,包括系统设置模块、登录注册模块、题目管理模块、答题模块以及动态靶机模块,所述系统设置模块用于对系统参数进行简易设置,包括时间、是否开放注册、是否对游客隐藏系统设置的相关界面;所述登录注册模块用于新用户的注册以及已注册用户的登录验证过程,并判断登录人员的权限范围;所述题目管理模块用于管理所有试题,包括但不限于新建、删除以及编辑试题;所述答题模块用于用户登录之后对题目进行答题;所述动态靶机模块用于用户对拥有动态靶机功能的题目创建对应靶机,用户可以对自己创建的靶机进行关闭和重启,管理员可以查看、重启、关闭所有已经创建的靶机。
[0007]优选的,所述系统设置模块包括平台信息管理子模块、镜像管理子模块和安全设置子模块,所述平台信息管理子模块用于监控管理系统信息,控制UI界面设置;所述镜像管理子模块基于docker容器对题目进行镜像管理,通过镜像的名字来实现题目和镜像对应,在前端配置题目的时候,若题目有靶机,需要补充docker镜像名字,同时管理员要在服务器中准备好此题目镜像,当用户进入此题页面的时候会看到开启靶机选项,开启时调用
docker命令,使用docker up和不与服务器产生冲突的端口号,即可访问靶机;所述安全设置子模块可通过一键停止功能停止做题操作。
[0008]优选的,所述登录注册模块包括注册子模块、登录子模块和用户管理子模块,所述注册子模块主要用于新用户注册功能,通过填写个人基本信息,有邮箱、账号密码,后续管理员需后台设置邮箱服务,给用户提供找回密码的功能;所述登录子模块用于根据用户填写的用户名、密码登录,后台根据验证,两者需相互对应才可登录对应用户;所述用户管理子模块用于确认登录账号以及确认登录人员的身份信息,包括队伍子模块和成员子模块,所述队伍子模块可实现队伍信息管理、队伍人员设置以及自建队伍;所述成员子模块用于新增、修改、删除用户,还可以将普通用户设置成管理员。
[0009]所述用户管理子模块还包括权限管理子模块,用于对登录用户进行权限划分,若登录人员信息为普通用户,则该登录用户权限包括浏览网页及题目,选择并完成题目,启动动态靶机以及修改个人资料;一些题目的答案会藏在靶机之中,需要对靶机进行攻击才能拿到答案,管理员在添加此类题目的时候会事先配置好此类题目的docker镜像文件,当用户进入此类题目的做题界面会出现启动靶机的按钮,事先管理员会利用docker build命令构建好靶机镜像存于服务器中,启动靶机的过程调用的是docker up命令,会将靶机的特定端口映射到服务器的闲置端口上,如:如web题一般需要将靶机的80端口映射到服务器闲置端口上;若登录人员为管理员,则权限还包括观察平台目前的用户注册数量、所有的题目,编辑前端页面UI,还可新增页面,对普通用户进行管理,可以查看用户信息和变更用户的分类、分数的权限,调用动态靶机功能模块。
[0010]优选的,所述题目管理模块中,对于有动态靶机绑定的试题,需要提前在服务器内准备好docker镜像,在创建题目的时候选择动态靶机类题目,以创建好的题目镜像名字为索引,配置完成后,用户在浏览有动态靶机的题目时会出现启动靶机的界面。
[0011]本专利技术的另一个目的在于提供了一种网络攻防在线实训方法,基于所述的网络攻防在线实训OJ系统,包括以下步骤:
[0012]S1,用户通过注册登录模块登录所述网络攻防在线实训OJ系统;判断登录用户是否为管理员角色,若不是管理员,则加载前端答题界面,并进行步骤S2,若登录的是管理员角色,则会加载出进入后台管理的入口,可以进行步骤S3;
[0013]S2,普通用户可以查看目前题目的信息,访问一道题目,通过解答题目所给出的问题,提交答案即可获得对应题目的分数,可以查看目前其他用户做题获得分数的情况,可以查看自己的做题情况和信息,并可以对有限的信息进行修改;
[0014]S21,打开所有题目列表,选择对应需要做的题目,确认题目的二进制文件,确认该文件所开启的保护和位数;
[0015]S22,用ida32或ida4分析该文件,寻找漏洞点,待发现栈溢出漏洞,采用pwntool工具攻击该文件脚本;
[0016]S23,获取该文件所对应的远程主机权限,从而最终得到服务器中的flag,结束答题;
[0017]S24,用户通过系统中题目中的答案提交框提交答案,获得题目对应的分数,题目分数随着做出题目的人数的增加而减少。
[0018]S3,管理员进入后台可以查看题目的信息,包括题目id、名称、状态等信息;管理员
可以增加、修改、删减题目;对于动态靶机的管理,管理员可以查看、关闭和重启任意在服务器中创建的靶机;对于用户,管理员可以修改用户信息、变更用户权限。
[0019]优选的,步骤S21中所述选择对应需要做的题目,还包括:若该题目有动态靶机,则需要开启靶机才能做题,即将调用docker up命令启动管理事先用docker build配置好的镜像,再将启动的docker虚拟机即靶机的对应服务端口映射到服务器的闲置端口上,若有附件,则需要下载附件后才能做题。
[0020]优选的,所述开启靶机采用动态靶机功能模块实现,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络攻防在线实训OJ系统,其特征在于,采用bootstrap作为前端框架,flask为后端框架,基于python语言、docker技术以及frp技术获得,包括系统设置模块、登录注册模块、题目管理模块、答题模块以及动态靶机模块,所述系统设置模块用于对系统参数进行简易设置,包括时间、是否开放注册、是否对游客隐藏系统设置的相关界面;所述登录注册模块用于新用户的注册以及已注册用户的登录验证过程,并判断登录人员的权限范围;所述题目管理模块用于管理所有试题,包括但不限于新建、删除以及编辑试题;所述答题模块用于用户登录之后对题目进行答题;所述动态靶机模块用于用户对拥有动态靶机功能的题目创建对应靶机,用户可以对自己创建的靶机进行关闭和重启,管理员可以查看、重启、关闭所有已经创建的靶机。2.根据权利要求1所述的网络攻防在线实训OJ系统,其特征在于,所述系统设置模块包括平台信息管理子模块、镜像管理子模块和安全设置子模块,所述平台信息管理子模块用于监控管理系统信息,控制UI界面设置;所述镜像管理子模块基于docker容器对题目进行镜像管理,通过镜像的名字来实现题目和镜像对应,在前端配置题目的时候,若题目有靶机,需要补充docker镜像名字,同时管理员要在服务器中准备好此题目镜像,当用户进入此题页面的时候会看到开启靶机选项,开启时调用docker命令,使用docker up和不与服务器产生冲突的端口号,即可访问靶机;所述安全设置子模块可通过一键停止功能停止做题操作。3.根据权利要求1所述的网络攻防在线实训OJ系统,其特征在于,所述登录注册模块包括注册子模块、登录子模块和用户管理子模块,所述注册子模块主要用于新用户注册功能,所述登录子模块用于已注册用户通过用户名和密码登录系统,所述用户管理子模块用于确认登录账号以及确认登录人员的身份信息,包括队伍子模块和成员子模块,所述队伍子模块可实现队伍信息管理、队伍人员设置以及自建队伍;所述成员子模块用于新增、修改、删除用户,还可以将普通用户设置成管理员。4.根据权利要求1所述的网络攻防在线实训OJ系统,其特征在于,所述题目管理模块中,对于有动态靶机绑定的试题,需要提前在服务器内准备好docker镜像,在创建题目的时候选择动态靶机类题目,以创建好的题目镜像名字为索引,配置完成后,用户在浏览有动态靶机的题目时会出现启动靶机的界面。5.一种网络攻防在线实训方法,其特征在于,基于权利要求1

4任一所述的网络攻防在线实训OJ系统,包括以下步骤:S1,用户通过注册登录模块登录所述网络攻防在线实训OJ系统;判断登录用户是否为管理员角色,若不是管理员,则加载前端答题界面,并进行步骤S2,若登录的是管理员角色,则会加载出进入后台管理的入口,可以进行步骤S3;S2,普通用户可以查看目前题目的信息,访问一道题目,通过解答题目所给出的问题,提交答案即可获得对应题目的分数,可...

【专利技术属性】
技术研发人员:纪守领彭浩费俊涛张旭鸿钟鸣赵丹丹韩建民伍一鸣
申请(专利权)人:尚蝉浙江科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1