天镜漏洞扫描报告HTML转Excel格式Python脚本
在乙方使用天镜进行众多漏洞扫描,其默认导出格式为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(' ','').strip()if (spLine == '危险级别'):vbLevel = splitTxt[2].replace(' ','').strip()if (spLine == 'CVE编号'):vbCVE = splitTxt[2].replace(' ','').strip()if (spLine == '存在主机'):vbIP = splitTxt[2].replace(' ','').strip()if (spLine == '详细描述'):vbDesc = splitTxt[2].replace(' ','').strip()if (spLine == '修补建议'):vbRepairLen = len(splitTxt)tmpStr = ''for i in range(vbRepairLen-1):if (i>2):tmpStr+=splitTxt[i]+'\n'vbRepair = tmpStr.replace(' ','').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脚本相关推荐
- Windows7之天镜漏洞扫描工具安装
01 天镜漏洞扫描工具安装 01 安装天镜 02 升级漏洞 03 重启win7, 多次重复升级过程(1次可能没办法成功) 04 成功之后查看版本
- Nessus漏洞扫描报告翻译问题解决办法!
Nessus漏洞扫描报告翻译问题解决办法! 搞安全,肯定少不了Nessus! 下面跟大家分享一款python写的小容量简单实用的翻译脚本! 翻译中文漏洞库使用本地数据库(vulLib.db)! 使用步 ...
- python excel格式,Python 如何写入Excel格式和颜色
Python写入Excel有时需要合并单元格.或者改变文字内容的颜色 首先导入xlwt模块 import xlwt 创建文件名 创建Excel工作簿对象 创建工作表 创建样式字体红色 filename ...
- Web安全漏洞扫描神器-AWVS下载、安装及使用教程
目录 一.AWVS介绍 二.网站漏洞扫描 三.漏洞扫描结果 四.漏洞告警分析利用 五.根据漏洞信息进行验证.利用 六.网络爬虫 七.主机发现(c段探测) 八.子域名探测 九.SQL注入 十.HTTP头 ...
- JAVA漏洞扫描工具之墨菲安全for IDEA
背景 最近log4j漏洞猖狂,某天一个好心网友提交了一份分析报告,指出开源软有问题墨菲漏洞扫描报告forSpringBootCodeGenerator ,当时马上就更新所有依赖到最新版本.事后觉得这个 ...
- AWVS 网页漏洞扫描工具安装使用(Linux)
AWVS( Acunetix Web Vulnerability Scanner) 是一款知名的Web网络漏洞扫描工具,通过网络爬虫测试你的网站安全,检测流行安全漏洞. 安装包是下载这个文件 :acu ...
- 比葫芦娃还可怕的百度全系APP SDK漏洞 - WormHole虫洞漏洞分析报告
瘦蛟舞 · 2015/11/02 10:50 作者:瘦蛟舞,蒸米 "You can't have a back door in the software because you can't ...
- 自动化漏洞扫描工具使用指南
作为企业的IT安全管理员,您的重要任务之一,一定离不开全面的漏洞管理.即,全方位地评估.报告和缓解企业内部技术栈中,存在的各项安全弱点和网络威胁.而面对此类繁杂复杂的工作时,我们往往需要借助自动化的漏 ...
- 【渗透测试】漏洞扫描AWVS安装使用教程,三分钟手把手教会,非常简单
一.AWS简介 Acunetix Web Vulnerability Scanner(简称AWVS)是一个自动化的Web漏洞扫描工具,它可以扫描任何通过Web浏览器访问和遵循HITP/HTTPS规则的 ...
- web漏洞扫描之AWVS
文章目录 简介 下载地址 安装教程 开启 扫描测试 AWVS忘记了密码? 简介 本篇文章是在基于kali中安装,windows安装awvs可以参照此博客 AWVS是一个自动化的web漏洞扫描工具,它可 ...
最新文章
- JSP针织生产管理系统
- SQL基础【九、Update】
- mysql 绕过select报错_MySQL注射绕过技巧(三)
- 探索比特币源码5-私钥
- Npm基本指令(转)
- linux为mysql用户授权,Linux环境 Mysql新建用户和数据库并授权
- devops handbook 读书笔记_DevOps教程:Azure DevOps
- 【leetcode】数组的度-两个map关联初探
- 呼叫中心几种常见质检方式的对比
- 网页版 QQ授权登录
- 挑战程序设计竞赛——Ants(POJ No.1852)
- 悉尼大学计算机专业本科2019,2019悉尼大学申请条件
- 计算机cmp代表什么意思,CMP是什么
- nyoj-234-吃土豆(动态规划)
- process launch failed: timed out waiting for app to launch问题解决
- 搜索引擎技术/动态资源
- 计算机网络c类网络划分子网介绍,IP地址的子网划分详解
- 深圳大学计算机与软件学院寝室照片,深圳大学宿舍(深圳大学宿舍真实照片)...
- gantt客制化gantt 图标
- 基于matlab的网络通信RSRP切换仿真
热门文章
- ResponseEntity总结
- Time, Delays, and Deferred Work LDD3 学习笔记 + jiffies.h 分析
- 【lstm预测】基于lstm实现时间序列数据预测matlab源码
- Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection
- 内容过于真实,可能会引起不适-----程序员去面试的梗!面试官:“哦了,明天来上班吧”
- Iterative Deep Learning论文简读
- 核电工程能源行业案例 | 达索系统百世慧®
- 终于明白#!bin/sh是什么意思了
- 量化金融基本模型及方法讲习班系列笔记——‘AI与金融工程’
- Capture web with FireShot