系统框架

前端:Ant Design Pro

后端:Django REST Framework

数据库:Mysql

主要功能

用户管理:主要是方便统计漏洞的发现者,后续可能大概也许会添加漏洞统计模块,根据提交数据、漏洞类型、时间等进行统计报表,当前用户管理模块仅允许通过Django后台进行修改,前端只负责展示,主要是我太懒了。

项目管理:根据项目的不同可上传项目的专属渗透测报告模板,并可以根据需要进行模板自定义模板(/Demo/demo.docx);

模板自定义:不用修改源代码,仅需修改word即可进行模板自定义;

整改建议管理:此平台主要就是为了体现标准化输出,因此可通过内置漏洞描述及修复建议进行快速输出,并支持自定义修改(/Demo/常规WEB渗透测试漏洞描述及修复方法.docx);

一键生成:通过提交报告模块,内联项目模板,快速生成渗透测试报告,真正达到了一键生成,并确保报告内数据准确、字体统一、格式标准;

自动邮件:在生成报告后可通过用户管理配置的自动邮件发送功能进行邮件通知,可自定义邮件模板,这样再报告给客户的时候就可以直接转发了(暖男功能);

漏洞统计:每次渗透过后,需要挨个查找报告进行统计整理,现在只要提交报告后,后台会自动联动;

漏洞报表一键导出

漏洞跟踪:增加了漏洞状态字段,创建报告后,漏洞状态默认为新增,漏洞管理模块可进行复测,包括已整改、未整改两种状态;

相关预览

Demo:http://savior.sec404.cn
演示账号:admin
演示密码:Savior@404

安装指南

首先将代码clone到本地:

git clone https://github.com/Mustard404/Savior.git

Docker部署

我们推荐使用Docker进行部署,相对于源码部署更为简单和快速。

部署前请务必先安装Docker及docker-compose。

修改配置文件

首先复制根目录的.env.docker并重命名为.env,修改其中的Email Settings和initial Administrator配置。这两个配置分别控制邮件提醒,以及初始管理帐号密码及邮箱。

同时需要注意以下两点:

  1. 务必把邮箱修改为自己邮箱,不然可能会出现非预期错误!

  2. 如果使用阿里云、腾讯云服务器,请使用smtp的ssl协议,两家云厂商默认封禁了25端口。

一键启动

docker-compose up -d

访问 http://127.0.0.1:8000即可看到页面。

修改启动端口

如果想修改启动端口,可以修改docker-compose.yaml文件中web容器的ports。

默认为8000:8000,比如要修改为8080端口可改为8080:8000。

【点击查看网络安全学习资料与相关工具】·关注回复资料即可获取学习资料

  • 2000多本网络安全系列电子书
  • 网络安全标准题库资料
  • 项目源码
  • 网络安全基础入门、Linux、web安全、攻防方面的视频
  • 网络安全学习路线图
  • 相关工具

源码部署

所需环境:

python 3.8+(测试过3.6也没问题,其他版本自行测试)

yarn 1.22+

Pandoc

Mysql 5.7

前端环境

cd app
yarn && yarn start:no-mock

环境变量设置 创建字符集为utf-8编码的数据库。 复制**.env.docker为.env**,并配置数据库、邮箱、管理员等信息。

务必把邮箱修改为自己邮箱,不然可能会出现非预期错误!

如果使用阿里云、腾讯云服务器,请使用smtp的ssl协议,两家云厂商默认封禁了25端口。

后端环境

#开启env环境
python3 -m venv env
source env/bin/activate
#安装依赖
python -m pip install -r requirements.txt -i http://pypi.doubanio.com/simple --trusted-host pypi.doubanio.com
#同步数据库
python manage.py makemigrations api
python manage.py migrate
python manage.py init_admin
#启动后端
python manage.py runserver 0.0.0.0:8000

源码部署环境:

前台页面:http://127.0.0.1:8001

Django管理后台:http://127.0.0.1:8000/api/admin/

使用手册

初始化说明
其中Savior平台包含两个后台页面。考虑到安全性,目前用户管理、项目管理托管于Django管理后台(主要是这两个模块不会写),其余功能均可通过前台页面实现。

前台页面:http://127.0.0.1:8000

Django管理后台:http://127.0.0.1:8000/api/admin/

用户管理

访问Django管理后台:http://127.0.0.1:8000/api/admin/, 请完善API>用户的Name、Avatar、Autosentmail三个字段,分别控制报告的作者、头像(图片Url)、生成报告后自动发送渗透测试报告到邮箱。

项目管理
访问Django管理后台:http://127.0.0.1:8000/api/admin/,请通过API>Projects进行添加项目,可根据不通项目选择不通的渗透测试报告模板。参数说明:Project logo(项目Logo)、Project center(项目名称)、Project description(项目描述)、Project template(渗透测试报告模板,目前标准模板可使用Demo/demo.docx,如需自定义模板,请参考模版自定义部分)

整改设置
访问http://127.0.0.1:8000可进入Savior平台,通过个人设置>整改设置>添加漏洞模板可进行设置漏洞类型、漏洞描述、修复建议从而达到标准化。目前整理了一些通用的修复建议模板,请参考Demo/常规WEB渗透测试漏洞描述及修复方法.docx。

模板自定义
目前根据我经常使用的渗透测试报告模板生成了一个demo版本(请参考/Demo/demo.docx)。当然您也可以根据自己的需求进行模板自定义,其中仅需在WORD模板中进行参数替换,目前Savior中具体参数如下:

{{report_no}} - 漏洞编号,通过时间戳自动生成,确保漏洞编号的唯一性

{{report_center}} - 测试项目,为项目管理中项目名称

{{report_systemname}} - 系统名称

{{report_start_time}} - 测试开始时间

{{report_end_time}} - 测试结束时间

{{report_author}} - 测试提交人,对应用户管理的Name参数

{{report_test_url}} - 测试Url

{{vuls|length}} - 漏洞个数

{{vuls|vul_statistics(3)}} - 高危漏洞个数

{{vuls|vul_statistics(2)}} - 中危漏洞个数

{{vuls|vul_statistics(1)}} - 低危漏洞个数

以下漏洞详情请利用{%tr for vuls in vuls %}{%tr endfor %}进行循环遍历。如想列出所有漏洞URL,则使用参数{%tr for vuls in vuls %}{{item.vul_url}}{%tr endfor %}

{{item.vul_url}} - 漏洞Url

{{item.vul_recurrence}} - 漏洞复现

{{item.vul_level}} - 漏洞危险等级

{{item.vul_describe}} - 漏洞描述

{{item.vul_modify_repair}} - 修复建议

:Savior平台渗透测试模板遵循Jinja2语法

创建报告

如果我们完善了用户信息、项目管理、整改设置后,就可以通过前端页面进行创建报告,其大概流程如下: 首先完善报告的基本信息。

选择漏洞管理的添加漏洞功能。选择漏洞类型后,漏洞名称、漏洞描述、修复建议会根据整改设置进行自动联动,并可根据需求进行自定义修改。需要注意的是漏洞详情处如果需要插入XSS语句,请进行url编码后进行输入!

:未提交前请勿刷新页面,此时漏洞详情保存为前端。提交后会自动生成渗透测试报告并进行下载。

打开报告会提示更新域,更新请选择是,再选择更新整个目录,此问题主要是为了更新目录,不然渗透测试报告中目录无法自动更新。


如果在用户管理打开了Autosentmail功能,渗透测试报告会自动发送至我们邮箱,方便转给甲方爸爸。

漏洞列表

访问Savior平台,选择漏洞列表可进行漏洞统计并进行漏洞复测。其中漏洞包含三个状态(新发现、已修复、未修复)。

通过选择导出数据功能,可将漏洞列表导出为Excle。

后续计划

用户管理、项目管理迁移至前端

大数据看板

关注私信回复“资料”即可获取网络安全学习资料

Savior:渗透测试报告自动生成工具相关推荐

  1. 强荐 | 渗透测试报告自动生成工具

    搜索公众号:白帽子左一,领配套练手靶场,全套安全课程及工具 背景 在安服仔的日子里,发现其他人输出的渗透测试报告结果不规范,主要在报告质量.内容.字体.及修复方案中存在诸多问题,而且大部分安服仔需要对 ...

  2. 开源!开源!我写的Anto.exe C#代码自动生成工具.欢迎下载。。

    在开发的过程中开发人员不得不经常要写很多重复的代码, 为了把精力放到更重要的方面去很多人为都做了N多努力,随便google一下自动生成工具, 你都会很容易得到很多这样的工具.园子就有好几款,其中李天平 ...

  3. python词云去除词_使用Python制作一个带GUI界面的词云自动生成工具(连载五)

    上一篇中我们介绍了自动生成词云工具(GUI)中数据清洗界面的实现过程(详解词云自动生成工具的数据清洗界面制作过程(连载四)),了解掌握了Grid.Pack混合布局的方法.本篇我们将讨论Python自动 ...

  4. 渗透脚本快速生成工具Intersect

    渗透脚本快速生成工具Intersect 当渗透人员获取目标系统的执行权限,往往需要编写相应的脚本,实现更多的渗透操作.Kali Linux提供一款Python脚本快速生成工具Intersect.该工具 ...

  5. BuildIt: Visual Studio .NET 的自动生成工具

    为什么80%的码农都做不了架构师?>>>    用 Visual Studio.NET 和 Visual SourceSafe 进行团队开发 http://msdn.microsof ...

  6. html自动生成工具_关于STM32代码自动生成的工具的进度....

    前情提要:STM32代码自动生成工具_本想...但是...可是...所以 首先说一下那几天大家的反应,有的持观望态度,毕竟STM32CUBE很香:有的很激动,期待我快点出东西:还有的很淡定,知道我在挖 ...

  7. python color属性_使用Python制作一个带GUI界面的词云自动生成工具(连载七)

    前几篇向大家介绍了词云自动生成工具(GUI)的详解GUI词云自动生成工具中词云属性设置界面的实现(连载六).通过前面内容我们基本构建出了词云自动生成工具的主要框架.本篇结合tkinter中的filed ...

  8. 自动产生fsm代码的工具_代码自动生成工具

    构建支持多种数据库类型的代码自动生成工具 背景: 一般的业务代码中写来写去,无外乎是先建好model,然后针对这个model做些CRUD的操作.(主要针对单表的业务操作)针对于数据库dao.mappe ...

  9. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

最新文章

  1. zookeeper集群环境搭建
  2. 妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种
  3. 短信网址价值不大不应被热炒
  4. 字符串中斜杠换行注意事项之-多余空格
  5. web第二节2020.5.11
  6. 运行时vs编译时类路径
  7. Linux的shell编程(三)
  8. python之使用numpy实现从二维数组中找出行(子数组)为特定值的索引
  9. python seaborn_Python数据分析之Seaborn(回归分析绘图)
  10. Linux进阶之环境变量文件/etc/profile、/etc/bashrc、/etc/environment
  11. opencv图像分析与处理(7)- 频率域滤波的基础公式、步骤与C++实现
  12. 最长回文子串(Longest Palindromic Substring)-DP问题
  13. VS 2017番茄插件安装破解教程:visual assist
  14. 【Kali】Kali在线安装详细教程【全】
  15. Ubuntu 安装mujoco
  16. 国网智能车载终端TBOX国标GB/T 32960、新能源汽车GB32960国家标准4GTBOX、国家电网统一车辆管理平台车载终端、电动汽车远程管理系统车载终端TBOX、新能源车联网终端T-BOX国标
  17. 【已解决】surface 电池不好充电显示“未连接”,将充电的接口换个方向就解决了
  18. 主板没有rgb接口怎么接灯_DIY只为玩游戏?主板配上RGB灯让机箱发光
  19. HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学
  20. Altium Designer 21导出ANF到SIwave

热门文章

  1. ML:MLOps系列讲解之《基于ML的软件的三个层次之02 Model: Machine Learning Pipelines 2.1~2.4》解读
  2. Python之fastai:fastai库的简介、安装、使用方法之详细攻略
  3. 成功解决for循环语句中,后几次循环输出数据一直全部为空
  4. CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!
  5. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——21~40
  6. 成功解决ValueError: Shape of passed values is (1, 332), indices imply (1, 1)
  7. 成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决)
  8. android monkey压力测试(二)
  9. 1154:LETTERS
  10. XJOI 3629 非严格次小生成树(pqq的礼物)