Python打造漏洞扫描器 9

扫描器之自动生成网页报告

一、实验介绍

1.1 实验内容

前面我们写了很多功能模块,信息都是输出到控制台上的,有时候信息多了的时候根本看不过来,我们这节课做的就是将结果存储下来写到文件,然后写个网页生成器来自动生成网页报告。

最后结果是这样哒,是不是感觉酷酷的?

此处输入图片的描述

1.2 实验知识点

  • 数据收集与输出

1.3 实验环境

  • Python2.7
  • Xfce终端
  • Sublime

1.4 适合人群

本课程难度为一般,属于初级级别课程,适合具有Python基础的用户,熟悉python基础知识加深巩固。

1.5 代码获取

$ wget http://labfile.oss.aliyuncs.com/courses/761/shiyanlouscan9.zip
$ unzip shiyanlouscan9.zip

二、实验内容

2.1 定义结果输出类

我们需要创建一个结果输出类,用这个类来收集数据,输出数据,并且可以写到hmtl中生成网页报告。

定义一个ouputer

类中我们定义几个函数即可:

class outputer
    def add(self,key,data):通过字典方式添加数据
    def add_list(self,key,data): 通过列表方式添加数据
    def get(self,key):获取某个数据
    def show(self):显示加入的数据
    def build_html(self,name):生成网页 name为保存的文件名

2.2 完整代码

类中实列一个变量,因为类定义的时候实例化的变量是不会改变的。
完整代码:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

class outputer:
    data = {}

    def get(self,key):
        if key in self.data:
            return self.data[key]
        return None

    def add(self,key,data):
        self.data[key] = data

    def add_list(self,key,data):
        if key not in self.data:
            self.data[key] = []
        self.data[key].append(data)

    def show(self):
        for key in self.data:
            print "%s:%s"%(key,self.data[key])

    def _build_table(self):
        _str = ""
        for key in self.data:
            if isinstance(self.data[key],list):
                _td = ""
                for key2 in self.data[key]:
                    _td += key2 + '</br>'
                _str += "<tr><td>%s</td><td>%s</td></tr>"%(key,_td)
            else:
                _str += "<tr><td>%s</td><td>%s</td></tr>"%(key,self.data[key])
        return _str
    def build_html(self,filename):
        html_head = '''
        <!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="gbk">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>W8ayscan Report</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
<div class="container container-fluid">
    <div class="row-fluid">
        <div class="span12">
            <h3 class="text-center">
                W8ayscan Report
            </h3>
            </BR>
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>
                            title
                        </th>
                        <th>
                            content
                        </th>
                    </tr>
                </thead>
                <tbody>
                    build_html_w8ayScan
                </tbody>
            </table>
        </div>
    </div>
</div>  </body>
</html>'''.replace("build_html_w8ayScan",self._build_table())
        file_object = open(filename+'.html', 'w')
        file_object.write(html_head)
        file_object.close()

保存在/lib/core/outputer.py

2.3 使用方法

在需要的地方

from lib.core import outputer
output = outputer.outputer()

来初始化,通过output.add()或者output.add_list()加入数据,

在功能模块中显示数据的地方将数据添加进来即可。

比如这是w8ay.py中的。

此处输入图片的描述

但是数据打印出来的地方都是在每个功能模块的内部实现的,所以我们要在每个功能模块中类似加入。是的,每个。。。

web敏感文件扫描模块加入

此处输入图片的描述

端口扫描中加入

此处输入图片的描述

等等。。 只要是功能模块输出的地方全部加上这个类,爬虫插件里面也要加上。

最后,在主调度程序每调用完一个程序后生成一次html。
此处输入图片的描述

扫描器运行截图

此处输入图片的描述

生成的网页报告

此处输入图片的描述

三、总结

至此,扫描器课程已经完结了,还记得第一节课的扫描器脑图吗

此处输入图片的描述

已经完成了其中大部分的功能,有部分功能在后期编写过程中感觉不需要了,所以没有加上,其实,如果学完了这个系列课程的话,相信大家已经有一个基本的制作扫描器的概念了。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python漏洞扫描器代码是一种基于Python语言开发的用于扫描计算机网络系统中存在的漏洞的工具。它通过对目标系统进行自动化的检测和分析,以发现可能存在的安全漏洞,为系统管理员提供有效的风险评估和修复建议。 Python漏洞扫描器代码通常包含以下几个主要模块: 1. 目标选择模块:用于指定需要扫描的目标系统,可以通过输入IP地址、URL或域名等方式进行选择。 2. 端口扫描模块:通过扫描目标系统上开放的网络端口,确定可以进行漏洞检测的各种服务和应用。 3. 漏洞检测模块:根据已知的漏洞库和攻击特征,对目标系统进行深度检测,寻找存在的漏洞。 4. 结果输出模块:将扫描结果以易读的方式呈现给用户,例如报告生成或命令行输出。 Python漏洞扫描器代码的使用方法一般为: 1. 安装Python环境并下载所需依赖库。 2. 编写扫描器代码,包括目标选择、端口扫描和漏洞检测等功能。 3. 运行代码,输入目标系统信息,并等待扫描结果输出。 4. 根据输出结果,评估目标系统的安全风险,并采取相应的修复措施。 Python漏洞扫描器代码的开发需要具备一定的网络安全知识和Python编程技能,同时也需要按照法律法规和道德规范使用,以免对他人的网络系统造成未授权的影响。同时,由于软件和系统的漏洞库不断变化,扫描器的代码也需要持续地维护和更新,以提高扫描的准确性和全面性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值