在乙方使用天镜进行众多漏洞扫描,其默认导出格式为HTML,因为工作需要将其发现漏洞全部贴到Excel表格中,动不动就是成百上千的漏洞,任务量吓人。于是写一脚本,减少工作量。

Code:

# -*- coding: utf-8 -*-
# ******************************************************
# Author       : Nt
# Last modified: 2016-12-16 16:39
# Email        : huai201208@gmail.com
# Filename     : html2excel.py
# Version      : 1.0
# Description  : 方便导出天镜漏洞报告中的漏洞列表。
# Example      : html2excel.py /Report/files/Report_main.html outFileName.xls
# ******************************************************import re
import sys
import xlwt
from bs4 import BeautifulSoupexcelTXT = [] # 存放所有的excel待写入内容vbName = ''   # 漏洞名字
vbType = ''   # 漏洞类型
vbLevel = ''  # 危险级别
vbCVE = ''    # CVE编号
vbIP = ''     # 主机IP
vbDesc = ''   # 详细描述
vbRepair = '' # 修复建议exp1 = re.compile("(?isu)<tr[^>]*>(.*?)</tr>")   # 正则寻找tr标签
exp2 = re.compile("(?isu)<div[^>]*>(.*?)</div>") # 正则寻找div标签
exp3 = re.compile("(?isu)<a[^>]*>(.*?)</a>")     # 正则寻找a标签,因为CVE是a标签.比较特殊
htmlSource = open(sys.argv[1]).read() # 读入html文件,天镜目录为: files/Report_main.html
soup = BeautifulSoup(htmlSource,'html.parser')
htmlSource = str(soup.find(id='section_13_content')) # 通过寻找网页中ID=section_13_content这个代码块。如果更新,就在此处splitTxt = '' # 正则内容放置此处for row in exp1.findall(htmlSource): # 正则全文,分别为exp1、exp2、exp3splitTxt += '===============\n'; # 分隔符,方便后续确认多行内容。for col in exp2.findall(row):splitTxt += col.strip().replace('<br>','').replace('<br/>','')+'\n'  # 正则结果追加至splitTxtfor col in exp3.findall(row):splitTxt += col.strip().replace('<br>', '').replace('<br/>','')+'\n' # 正则结果追加至splitTxtarrTxt = splitTxt.split("===============") # 以分隔符分割文本为数组。for line in arrTxt: #splitTxt = line.split('\n') #分割每一行for spLine in splitTxt: # 循环每一个数组成员if (re.match(r'[【/d】]', spLine)):num = str(re.findall('【(.*)】',splitTxt[1])).replace('[','').replace('\'','').replace(']','') # 取出当前是第几个漏洞cve = str(re.findall('\(.*\)',splitTxt[1])).replace('[','').replace('\'','').replace(']','') # 取出标题中可能带有的的CVE编号cve2 = str(re.findall('\(.*\)', splitTxt[1])).replace('[','').replace('\'','').replace(']','') # 中文括号,上面的是英文括号vbName = splitTxt[1].replace('【' + num + '】', '').replace(cve, '').replace(cve2, '')  # 替换【1】(cve-000-000)这种特殊字符if (spLine == '漏洞类型'):vbType = splitTxt[2].replace('&nbsp;','').strip()if (spLine == '危险级别'):vbLevel = splitTxt[2].replace('&nbsp;','').strip()if (spLine == 'CVE编号'):vbCVE = splitTxt[2].replace('&nbsp;','').strip()if (spLine == '存在主机'):vbIP = splitTxt[2].replace('&nbsp;','').strip()if (spLine == '详细描述'):vbDesc = splitTxt[2].replace('&nbsp;','').strip()if (spLine == '修补建议'):vbRepairLen = len(splitTxt)tmpStr = ''for i in range(vbRepairLen-1):if (i>2):tmpStr+=splitTxt[i]+'\n'vbRepair = tmpStr.replace('&nbsp;','').strip()#最后一个数据获取完,提交至excelexcelTXT.append(vbIP+'/**/'+vbType+'/**/'+vbLevel+'/**/'+vbName+'/**/'+vbCVE+'/**/'+vbDesc+'/**/'+vbRepair)#创建workbook和sheet对象
workbook = xlwt.Workbook() #注意Workbook的开头W要大写:encoding='utf-8',style_compression=0
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)for i in range(len(excelTXT)):splitRes = excelTXT[i].split('/**/')# 向sheet页中写入数据sheet1.write(i, 0, str(i+1).decode('utf-8'))sheet1.write(i, 1, splitRes[0].decode('utf-8'))sheet1.write(i, 2, splitRes[1].decode('utf-8'))sheet1.write(i, 3, splitRes[2].decode('utf-8'))sheet1.write(i, 4, splitRes[3].decode('utf-8'))sheet1.write(i, 5, splitRes[4].decode('utf-8'))sheet1.write(i, 6, splitRes[5].decode('utf-8'))sheet1.write(i, 7, splitRes[6].decode('utf-8'))#保存该excel文件,有同名文件时直接覆盖
workbook.save(sys.argv[2])
print '报告导出成功。'

使用帮助:

html2excel.py HTML文件 输出Excel文件
html2excel.py /Report/files/Report_main.html outFileName.xls

因为该版本是初次开发,可能会存在部分BUG,欢迎交流,指出不足:)

天镜漏洞扫描报告HTML转Excel格式Python脚本相关推荐

  1. Windows7之天镜漏洞扫描工具安装

    01 天镜漏洞扫描工具安装 01 安装天镜 02 升级漏洞 03 重启win7, 多次重复升级过程(1次可能没办法成功) 04 成功之后查看版本

  2. Nessus漏洞扫描报告翻译问题解决办法!

    Nessus漏洞扫描报告翻译问题解决办法! 搞安全,肯定少不了Nessus! 下面跟大家分享一款python写的小容量简单实用的翻译脚本! 翻译中文漏洞库使用本地数据库(vulLib.db)! 使用步 ...

  3. python excel格式,Python 如何写入Excel格式和颜色

    Python写入Excel有时需要合并单元格.或者改变文字内容的颜色 首先导入xlwt模块 import xlwt 创建文件名 创建Excel工作簿对象 创建工作表 创建样式字体红色 filename ...

  4. Web安全漏洞扫描神器-AWVS下载、安装及使用教程

    目录 一.AWVS介绍 二.网站漏洞扫描 三.漏洞扫描结果 四.漏洞告警分析利用 五.根据漏洞信息进行验证.利用 六.网络爬虫 七.主机发现(c段探测) 八.子域名探测 九.SQL注入 十.HTTP头 ...

  5. JAVA漏洞扫描工具之墨菲安全for IDEA

    背景 最近log4j漏洞猖狂,某天一个好心网友提交了一份分析报告,指出开源软有问题墨菲漏洞扫描报告forSpringBootCodeGenerator ,当时马上就更新所有依赖到最新版本.事后觉得这个 ...

  6. AWVS 网页漏洞扫描工具安装使用(Linux)

    AWVS( Acunetix Web Vulnerability Scanner) 是一款知名的Web网络漏洞扫描工具,通过网络爬虫测试你的网站安全,检测流行安全漏洞. 安装包是下载这个文件 :acu ...

  7. 比葫芦娃还可怕的百度全系APP SDK漏洞 - WormHole虫洞漏洞分析报告

    瘦蛟舞 · 2015/11/02 10:50 作者:瘦蛟舞,蒸米 "You can't have a back door in the software because you can't ...

  8. 自动化漏洞扫描工具使用指南

    作为企业的IT安全管理员,您的重要任务之一,一定离不开全面的漏洞管理.即,全方位地评估.报告和缓解企业内部技术栈中,存在的各项安全弱点和网络威胁.而面对此类繁杂复杂的工作时,我们往往需要借助自动化的漏 ...

  9. 【渗透测试】漏洞扫描AWVS安装使用教程,三分钟手把手教会,非常简单

    一.AWS简介 Acunetix Web Vulnerability Scanner(简称AWVS)是一个自动化的Web漏洞扫描工具,它可以扫描任何通过Web浏览器访问和遵循HITP/HTTPS规则的 ...

  10. web漏洞扫描之AWVS

    文章目录 简介 下载地址 安装教程 开启 扫描测试 AWVS忘记了密码? 简介 本篇文章是在基于kali中安装,windows安装awvs可以参照此博客 AWVS是一个自动化的web漏洞扫描工具,它可 ...

最新文章

  1. JSP针织生产管理系统
  2. SQL基础【九、Update】
  3. mysql 绕过select报错_MySQL注射绕过技巧(三)
  4. 探索比特币源码5-私钥
  5. Npm基本指令(转)
  6. linux为mysql用户授权,Linux环境 Mysql新建用户和数据库并授权
  7. devops handbook 读书笔记_DevOps教程:Azure DevOps
  8. 【leetcode】数组的度-两个map关联初探
  9. 呼叫中心几种常见质检方式的对比
  10. 网页版 QQ授权登录
  11. 挑战程序设计竞赛——Ants(POJ No.1852)
  12. 悉尼大学计算机专业本科2019,2019悉尼大学申请条件
  13. 计算机cmp代表什么意思,CMP是什么
  14. nyoj-234-吃土豆(动态规划)
  15. process launch failed: timed out waiting for app to launch问题解决
  16. 搜索引擎技术/动态资源
  17. 计算机网络c类网络划分子网介绍,IP地址的子网划分详解
  18. 深圳大学计算机与软件学院寝室照片,深圳大学宿舍(深圳大学宿舍真实照片)...
  19. gantt客制化gantt 图标
  20. 基于matlab的网络通信RSRP切换仿真

热门文章

  1. ResponseEntity总结
  2. Time, Delays, and Deferred Work LDD3 学习笔记 + jiffies.h 分析
  3. 【lstm预测】基于lstm实现时间序列数据预测matlab源码
  4. Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection
  5. 内容过于真实,可能会引起不适-----程序员去面试的梗!面试官:“哦了,明天来上班吧”
  6. Iterative Deep Learning论文简读
  7. 核电工程能源行业案例 | 达索系统百世慧®
  8. 终于明白#!bin/sh是什么意思了
  9. 量化金融基本模型及方法讲习班系列笔记——‘AI与金融工程’
  10. Capture web with FireShot