为了省时,写了一个脚本来处理极光漏扫之后导出报告不全面的问题。
记一次简单小脚本
一、初衷
使用过绿盟远程安全评估系统(RSAS 6.0)的小伙伴们都知道,在导出的excle中有个总表index.xls,这个表中缺少了漏洞描述和漏洞整改建议两列,这样就对需要整合成一个表的小伙伴头疼了,因为需要从一个漏洞对应的主机漏洞表中去找,各种复制粘贴,头疼。。。
二、模块介绍
脚本中使用到python3的xlwt、xlrd和xlutils三个模块,我们分别介绍一下。
- xlwt
字面意思可以看出是对xls文件的write,实际也是这样xlwt主要用来写excel,针对.xls格式,超出excel的单格内容长度上限32767,就会报错。 - xlrd
字面意思可以看出是对xls文件的read,对,xlrd主要用来读excel,针对.xls格式。 - xlutils
这个。。。字面意思我也猜不出来。xlutils结合xlrd可以达到修改excel文件目的,需要注意的是你必须同时安装这三个库。
三、脚本介绍
1.从导出的html总表中爬取系统名称(扫描时填写的任务名称)漏洞描述和整改建议写入xls文件中。
- 爬html部分代码
# 以只读的方式打开本地html文件 htmltxt = open(url_html, 'r',encoding='UTF-8') htmlpage = htmltxt.read() # 正则应用系统名称 a = '<th width="120">任务名称</th>.*?<td>' b ='</td>' name = re.compile( a +'(.*?)'+ b ,re.S|re.M) res_name = name.findall(htmlpage)
- 写入xls文件2.获取导出的xls总表中的漏洞名称,吧啦吧啦等你需要的列,然后打开步骤1中创建的xls文件,将这些获取的数据挨个放进去。
# 创建工作簿 book = xlwt.Workbook(encoding='utf-8') # 创建工作表格 sheet = book.add_sheet('test',cell_overwrite_ok=False) #单元格格式(borders边框,alignment格式,align自动换行,font字体,pattern:底色) style0 = xlwt.easyxf('borders:left thin,left_colour 0x40,right thin,right_colour 0x40,top thin,top_colour 0x40,bottom thin,bottom_colour 0x40;alignment: horz center,vert center;font: name 宋体, color-index black,bold on,height 280;pattern: pattern solid, fore_colour dark_green_ega;align: wrap on; ') #写入数据weite(1,2,3,4)参数1代表行,参数2代表列,参数3写入的数据,参数4单元格的格式 sheet.write(0, 0, '序号',style0) sheet.write(0, 1, '系统名称',style0) sheet.write(0, 2, '漏洞名称',style0) #保存文件(保存在执行目录) book.save('old.xls')
四、感谢workbook = xlrd.open_workbook(url_xls) # 根据sheet索引或者名称获取sheet内容 sheet = workbook.sheet_by_name('漏洞信息') # 获取sheet的行数,以便进行添加和判断 nrows = sheet.nrows # 获取整列的值(数组) cols_5 = sheet.col_values(5) # 获取第五列内容 # 打开之前保存的xls,并保留原格式(formatting_info=True) rb = xlrd.open_workbook('old.xls',formatting_info=True) # 复制rb所有表格,再进行操作 wb = copy(rb) # 获取sheet cr = wb.get_sheet(0) i = 2 while(i < nrows): cr.write(i-1,4,cols_5[i],style1) i += 1 os.remove('old.xls') wb.save(res_name[0] +'.xls')
初次写工具,后期会一直进行优化,感谢大家的批评和指导。
附件:
-
漏洞整理脚本.zip 下载
1 条评论
可输入 255 字