使用Django编写简易测试报告生成器

概述

安全测试人员在工作的时候,不单单需要发现问题,还需要花费精力去撰写安全测试报告来记录结果。为了方便,我利用django框架写了个简易的安全测试报告撰写系统。

撰写报告的时候,需要写明漏洞名称、漏洞风险等很多项目内容。对于某一类型漏洞而言,其实有很多项在大多数情况是固定不变的(比如漏洞名称、修复建议)。我们可以在编写漏洞的时候直接调用漏洞模板,再添加和修改需要记录的数据,最终一键导出我们设计好的模板。

配置和安装环境

Django-1.10.8 python2.7 Wndows/Mac

安装

python –m pip install –r requirements.txt

说明

Mac下安装mysql以及MySQL-python

brew install mysqlpip install MySQL-python

如果第二条安装出现”Failed building wheel for mysql-python”错误,则采用以下方法

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysql-python

启动服务

建库

本地mysql需要新建配置文件中的数据库settings.py文件:

DATABASES ={
 'default':{ 'ENGINE':'django.db.backends.mysql', 'HOST':'127.0.0.1', 'PORT':'3306', 'NAME':'bugwrite', # 数据库名 'USER':'root', 'PASSWORD':'root', 'OPTIONS':{ 'init_command':"SET sql_mode='STRICT_TRANS_TABLES'" }, }
}

建表

cd myweb01python manage.py makemigrationspython manage.py migrate

启服务

python manage.py runserver

功能描述

启动本地服务后,访问http://localhost:8000/blog/work可以在本地新建一个项目,如下图所示:

点开项目详情,可以在其中创建漏洞,并且可以引用不同的漏洞模板:

点击新建XSS漏洞后,XSS漏洞名称、风险分析、风险等级、修复建议会自动填充,只需要填写记录测试过程即可:

回到之前创建的项目,可以导出报告:

实现了漏洞管理

扩展和说明

漏洞模板创建

models.py文件中创建了BugModel类作为漏洞模板,并添加到admin中,在django的管理后台可以添加模板,访问http://localhost:8000/admin ,编辑BugModel即可:

然后在views.py中编辑form表单SelectTestFrom,添加模板选择项:

Word模板扩展

漏洞详情的使用ckeditor获取用户输入,提交的数据类型为html格式,我这边自己写了一个解析html数据的类Html2Word,处理了p/ul/ol/strong/em/img便签,为防止数据丢失,建议编辑器只用加粗、斜体、图片、序标的格式:html2word.py

下面是将漏洞字段填充到word中,如果有需要丰富生成的word模板,可以修改下面的内容:Object2word.py

附件

源码已经上传至github:https://github.com/Gin-Cy/bugeditor.git

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

LAMP及部署wordpress/phpMyadmin

引言 lamp含义:黄金组合。简要介绍一下下面这四个东西吧。linux,不用说了有很多发行版本,主流的三大版本是Debian系列,RedHat系列,slackw...

40270
来自专栏阮一峰的网络日志

DNS 原理入门

DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读...

58280
来自专栏蔡鹏的专栏

开源分布式监控系统 OWLv5.0.0 安装部署完整手册

OWL 是TalkingData公司推出的一款开源分布式监控系统 . 目前使用OWL监控了二十几台服务器,便捷很多 Go语言开发,部署维护简单

59380
来自专栏java一日一条

数据库的读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务...

18530
来自专栏同步博客

Memcached与MySQL数据同步

  在生产环境中,我们经常使用MySQL作为应用的数据库。但是随着用户的增多数据量的增大,我们将会自然而然的选择Memcached作为缓存数据库,从而减小MyS...

18120
来自专栏我是攻城师

ElasticSearch入门介绍之会当凌绝顶(一)

37750
来自专栏数据库

MY SQL 的读写分离

每日一句 去过的地方越多,越知道自己想回到什么地方去。见过的人越多,越知道自己真正想待在什么人身边. from 夏正正 MY SQL 读写分离 1...

35480
来自专栏吴伟祥

openjdk和oraclejdk有什么区别吗?

1.授权协议的不同:OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允...

93420
来自专栏PHP在线

手把手教会你小程序登录鉴权

56840
来自专栏沃趣科技

ASM 翻译系列第二十四弹:ASM Internal ASM files number 10 and 11

原作者:Bane Radulovic 译者: 郭旭瑞 审核: 魏兴华 DBGeeK社群联合出品 ASM files number 10 and 11...

30030

扫码关注云+社区

领取腾讯云代金券