Python Xml和读取excel

最近我接到了一个工作,就是把一份很长很长的漏洞扫描报告导入到单位的“测评能手”工具中,但是这个工具不支持导入这个excel表格,所以我要艰难的手动录入。

表格的长度有16000行,是对主机和数据库的漏扫内容,每一行有用的信息如下:

主机 漏洞名称 危险等级 漏洞简述 详细描述
xx.xx.xx.xx xx版本过旧

主机有几百台,包括8个项目所有的主机,每个项目又有一些自己的服务器和DB,他们提供了服务器和DB的ip列表,我的任务就是先把不同的项目的漏洞条目分好,然后通过手工的方式一条一条的导入漏洞

把excel数据导入python

安装PANDAS

通过pandas可以读取表格的sheet页了:

首先安装pandas、以及读取需要表格依赖openpyxl库:

1pip install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
2pip install openpyxl -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

读取sheet(s)

excel读取的时候需要选定sheet页,所以我们需要先获取sheet名称,

可以通过for x in sheet_names来loop整个excel文件。

1xpath = input("输入excel文件地址:")
2# get all sheet names
3sheep_name = pd.ExcelFile(xpath)
4sheet_names = sheep_name.sheet_names

读取XLSX表格

导入pandas库、读取xlsx文件

1import pandas as pd
2data = pd.read_excel('1.xlsx', sheet_name='Sheet1') #选取文件、要读取的sheet名
3print(data)

image

为了能操作到指定元素,我们需要先了解一下pandas的数据存储格式是什么:

1data = {
2    	'列头1': ['Akey1', 'Akey2','Akey3'],
3        '列头2': ['Bkey1','Bkey2','Bkey3'],
4        '列头3': [np.nan, np.nan, np.nan]
5       }

所以,pandas读取进来的我这个表就是这样的:

1print(data)
2---
3   列头1    列头2  列头3
40  Akey1  Bkey1  NaN
51  Akey2  Bkey2  NaN
62  Akey3  Bkey3  NaN

获取第一列的值(通过列头名称选择):

1print(data['列头1'])
2print(data.列头1)
3---
40    Akey1
51    Akey2
62    Akey3

获取第一行的值(通过列序号选择):

1print(data.iloc[0])
2---
3列头1    Akey1
4列头2    Bkey1
5列头3      NaN

获取第一行的、第一列的值:

1print(data.iloc[0].列头1)
2print(data.iloc[0][0])
3---
4Akey1

获取指定列、第一行的值:

1print(data['列头1'][0])
2print(data.列头1[0])
3---
4Akey1

获取列头2为指定值的列头1内容:

这里比较绕,不过无脑复制就好啦!而且这个取数据方式还是比较有用的。

1datarow = data.loc[data['列头2'] == 'Bkey1']
2print(datarow.列头1)
3---
4Akey1

因为我的excel是数据源,我没有对修改excel和保存做深入研究,只有一句保存语句:

参考

1data.to_excel(excel_writer='demo.xlsx', sheet_name='sheet_1')

了解pandas

其实仅仅为了处理excel还是没必要了解pandas了,不过网上写的教学不是很清楚都,所以我还是搜索并了解了pandas才弄明白怎么用。

pandas c语言中文网

 1# 单维度的资料:
 2import pandas as pd
 3
 4data = pd.Series([20, 10, 15])
 5print(data)
 6print('最大值', data.max())
 7print('中位数', data.median())
 8
 9# 所有data*2
10data = data * 2
11print(data)
12
13# 判定所有的data和20相等
14data = data == 20
15print(data)
 1# 双维度的资料(表格读取后的效果):
 2-------------------
 3   name  salary
 40   amy    3000
 51  jhon    5000
 62   bob    4000
 7
 8# 双维度的资料(自定义字典输入pandas)
 9data2 = pd.DataFrame(
10    {
11        "name": ['amy', 'jhon', 'bob'],
12        "salary": [3000, 5000, 4000]
13    }
14)
15print(data2)
16# 取得name列内容
17print(data2['name'])
18print("=========")
19# 取得特定的横向
20print(data2.iloc[0])
21
22# data = pd.read_excel('www2.xlsx', sheet_name='Sheet1')
23data["name"] # 竖着来的
24data.iloc[0] # 横着来的(ilocation - 0,1,2,3,4……)

过滤

但是有时候我们不知道自己想要的是第几行,比如想要知道amy的工资,要怎么办呢?

data.loc可以解决这个问题,比方说你可以提取1,2行让表格变成一个更小的表,所以我就可以组合语句,比方说这个地方有10个amy,你接可以拉一个amy表,看看谁的工资比较高。

1data2.loc[[1,2]] #返回第2,3行变成的小的表格
2data2["name"]=="amy" #返回amy所在行
3data_amy = data2.loc[ data2["name"]=="amy" ] #返回amy所在行变成的小的表格

遍历

1#dataInip是我通过想要的ip过滤的漏洞集合,
2#获取了data之后我要导入到自己的数据结构中,vul是我的数据结构的一部分,我会作为log进行打印
3vulcount = len(list(dataInip['级别']))
4
5for i in range(vulcount):
6    vul = [dataInip.iloc[i]['漏洞名称'], dataInip.iloc[i]['简述'], mydict[dataInip.iloc[i]['级别']], dataInip.iloc[i]['描述'], dataInip.iloc[i]['解决方案']]
7    print(vul)

缓存数据

好久没有用python了我就忘记了怎么存储数据了,只会用最简单的变量了,上网简单的查了一下,可以通过这种方式来新建一个自己需要的数据结构:

1class ip_and_vuls:
2    ip = "123.456.789.456"
3    vuls = []
4
5#访问
6p1 = ip_and_vuls
7p1.ip #123.456.789.456
8#唯一的缺点就是用的时候得手动初始化, 用完了最好传出去copy

为什么我不用 init`初始化函数呢,因为我懒得学,而且这个操作更灵活(也更容易出现自己发现不了的bug)

其实如果写代码逻辑够好的话,这种也没问题,但是逻辑如果糟糕一点就是一坨屎了。

XML

为什么又说到这里呢,因为我最终的目的就是要把表格的内容转换成有效的xml,就可以直接导入而不用手动粘贴了。

python的各种操作文件是我感觉异常简单的地方,c语言、java开个文件要好几行好复杂,python一行开了,一行输入完成了,一行又关好了。

xml这里我学的不精,能用为主嘛。

 1import xml.etree.ElementTree as ET
 2
 3# 获取xml(从外部文件读取)
 4tree = ET.parse("xmlLearn.xml")
 5# 获取xml根元素
 6root = tree.getroot()
 7# 打印xml(人不可读)
 8print(ET.tostring(root))
 9# 为根节点添加值
10root.set("launched","2021-11-18 10:23:15")
11
12# 为所有的investor节点添加一个属性 id
13id = 1
14for investor in tree.findall('investor'):
15    investor.set('id',str(id))
16    id += 1
17
18# 删除所有investor节点下的id
19for investor in tree.findall('investor'):
20    del(investor.attrib['id'])
21    id += 1
22
23#添加一个节点investor(!重点!)
24investor2 = ET.Element('investor')
25investor2.text = 'Karl Amber'
26root.append(investor2)
27
28# 选择特定investor(xpath看不懂)
29investor = root.find(".//investor[@id='4']")
30print(investor.text)
31
32# 输出到文件(没有缩进)
33tree.write("xmlLearn.xml")

这里我放一个图片希望大家看了可以懂,xml是一个嵌套树的结构,investor是root下面的,然而investor可以自己再有一个子节点(只要append就行了),xml是层级分明的文件结构

不过默认输出有很大的问题啊(我感觉)一是没有缩进,二是不支持中文,我很困扰所以我找到了下面的解决办法,虽然解决了但是要多加两个import了。这两个import都是python自带的,不用安装。

1import codecs
2from xml.dom import minidom
3
4# 美丽输出xml
5f = open("money.xml")
6xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ")
7with codecs.open("money.xml", "w", "utf-8") as f:
8    f.write(xmlstr)

对于我来说,我就只要增加节点,给节点加内容、最后按照等保标准导入格式输出一个xml就好了

附件

我的成品(私人库主要是有点敏感信息所以就暂时不公开了)kasusa/exceltodata: – (github.com)

等级保护漏洞导入用xml格式:

  1<?xml version="1.0" encoding="UTF-8"?>
  2<REPORT>
  3<SCANINFO TOOLNAME="XXXX" MAKERS="XXXX" POLICY="XXXX" SCANTASK="" SCANTIME="" FILE_ID="" />
  4<!-- TOOLNAME="扫描工具名称" MAKERS="工具厂商名称" POLICY="策略版本" SCANTASK="任务名称" SCANTIME="扫描时间" FILE_ID="文件ID(没啥大用处其实)" -->
  5
  6<SCANDATA TYPE="OS">
  7	<HOST IP="192.168.0.100">    <!-- *IP地址: -->
  8		<OSTYPE>WINDOWS</OSTYPE> <!--  操作系统类型:Windows、Linux、.... -->
  9		<OSVERSION>Windows Server 2008</OSVERSION><!--  操作系统版本:Windows 2008、RedHat 9、.... -->
 10		<DATA>
 11			<VULNERABLITY>
 12				<NAME><![CDATA[Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness]]></NAME><!-- *漏洞名称: -->
 13				<NO CVE="CVE-2005-1794" CNVD="CNVD-2005-1794" MS="MS07-111" OTHER="xxxx" />
 14				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号",没有编号可用NONE标识 -->
 15				<VULTYPE>缓存区溢出</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、中间件漏洞、其他等等 -->
 16				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
 17				<PORT>3389</PORT><!-- 端口: -->
 18				<RISK></RISK><!-- *风险情况:高、中、低、信息 -->
 19				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS><!-- 漏洞简述: -->
 20				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION><!-- *漏洞描述 -->
 21				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION><!-- *解决方案/整改意见 -->
 22				<VALIDATE><![CDATA[XXXXXX]]></VALIDATE><!-- 证据 -->
 23				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	<!-- 参考信息 -->
 24			</VULNERABLITY>
 25			<VULNERABLITY>
 26				<NAME><![CDATA[Terminal Services Encryption Level is Medium or Low]]></NAME><!-- *漏洞名称: -->
 27				<NO CVE="CVE-2005-1794" CNVD="CNVD-2005-1794" MS="MS07-111" OTHER="xxxx" />
 28				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
 29				<VULTYPE>设置不当</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、中间件漏洞、其他等等 -->
 30				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
 31				<PORT>3389</PORT>
 32				<RISK></RISK>>
 33				<SYNOPSIS><![CDATA[The remote host is using weak cryptography.]]></SYNOPSIS>
 34				<DESCRIPTION><![CDATA[The remote Terminal Services service is not configured to use strong cryptography.xxxxxxxxxxxxxxxxxxxxx]]></DESCRIPTION>
 35				<SOLUTION><![CDATA[- Change RDP encryption level to one of :xxxxxxxxxxxxxxxxxx]]></SOLUTION>
 36				<VALIDATE><![CDATA[XXXXX]]></VALIDATE>
 37				<REFERENCE><![CDATA[The terminal services encryption level is set to :]]></REFERENCE>	
 38			</VULNERABLITY>
 39		</DATA>
 40	</HOST>
 41	
 42	<HOST IP="102.168.20.20">
 43		<OSTYPE>LINUX</OSTYPE>
 44		<OSVERSION>RED HAT 9</OSVERSION>
 45		<DATA>
 46			<VULNERABLITY>
 47				<NAME><![CDATA[Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness]]></NAME>
 48				<NO CVE="CVE-2005-1794" CNVD="CNVD-2005-1794" MS="MS07-111" OTHER="xxxx" />
 49				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
 50				<VULTYPE>缓存区溢出</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、中间件漏洞、其他等等 -->
 51				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
 52				<PORT>3389</PORT>
 53				<RISK></RISK>
 54				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS>
 55				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION>
 56				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION>
 57				<VALIDATE><![CDATA[XXXXX]]></VALIDATE>
 58				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	
 59			</VULNERABLITY>
 60			<VULNERABLITY>
 61				<NAME><![CDATA[Terminal Services Encryption Level is Medium or Low]]></NAME>
 62				<NO CVE="CVE-2005-1794" CNVD="CNVD-2005-1794" MS="MS07-111" OTHER="xxxx" />
 63				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
 64				<VULTYPE>设置不当</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、中间件漏洞、其他等等 -->
 65				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
 66				<PORT>3389</PORT>
 67				<RISK></RISK>
 68				<SYNOPSIS><![CDATA[The remote host is using weak cryptography.]]></SYNOPSIS>
 69				<DESCRIPTION><![CDATA[The remote Terminal Services service is not configured to use strong cryptography.xxxxxxxxxxxxxxxxxxxxx]]></DESCRIPTION>
 70				<SOLUTION><![CDATA[- Change RDP encryption level to one of :xxxxxxxxxxxxxxxxxx]]></SOLUTION>
 71				<VALIDATE><![CDATA[XXXXX]]></VALIDATE>
 72				<REFERENCE><![CDATA[The terminal services encryption level is set to :]]></REFERENCE>	
 73			</VULNERABLITY>
 74		</DATA>
 75	</HOST>
 76</SCANDATA>
 77
 78<SCANDATA TYPE="DB">
 79	<HOST IP="102.168.20.20">
 80		<PORT>1433</PORT>
 81		<DBTYPE>Microsoft SQL Server</DBTYPE>
 82		<DBVERSION>Microsoft SQL Server 2008 R2</DBVERSION>
 83		<DATA>
 84			<VULNERABLITY> 
 85				<NAME><![CDATA[Easily-guessed password]]></NAME><!-- *漏洞名称: -->
 86				<NO CVE="NONE" CNVD="NONE" MS="NONE" OTHER="NONE" />
 87				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
 88				<VULTYPE>弱口令</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、弱口令、其他等等 -->
 89				<RISK></RISK><!-- *风险情况:高、中、低、信息 -->
 90				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS><!-- 漏洞简述: -->
 91				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION><!-- *漏洞描述 -->
 92				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION><!-- *解决方案/整改意见 -->
 93				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
 94				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	 <!-- 参考信息 -->
 95			</VULNERABLITY>
 96			<VULNERABLITY>
 97				<NAME><![CDATA[Terminal Services Encryption Level is Medium or Low]]></NAME><!-- *漏洞名称: -->
 98				<NO CVE="NONE" CNVD="NONE" MS="MS13-112" OTHER="NONE" />
 99				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
100				<VULTYPE>设置不当</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、弱口令、其他等等 -->
101				<RISK></RISK>
102				<SYNOPSIS><![CDATA[The remote host is using weak cryptography.]]></SYNOPSIS>
103				<DESCRIPTION><![CDATA[The remote Terminal Services service is not configured to use strong cryptography.xxxxxxxxxxxxxxxxxxxxx]]></DESCRIPTION>
104				<SOLUTION><![CDATA[- Change RDP encryption level to one of :xxxxxxxxxxxxxxxxxx]]></SOLUTION>
105				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
106				<REFERENCE><![CDATA[The terminal services encryption level is set to :]]></REFERENCE>	
107			</VULNERABLITY>
108		</DATA>
109	</HOST>
110	
111	<HOST IP="102.168.100.11">
112		<PORT>1433</PORT>
113		<DBTYPE>Microsoft SQL Server</DBTYPE>
114		<DBVERSION>Microsoft SQL Server 2008 R2</DBVERSION>
115		<DATA>
116			<VULNERABLITY>
117				<NAME><![CDATA[Easily-guessed password]]></NAME> <!-- *漏洞名称: -->
118				<NO CVE="NONE" CNVD="NONE" MS="NONE" OTHER="NONE" />
119				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
120				<VULTYPE>弱口令</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、弱口令、其他等等 -->
121				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
122				<RISK></RISK><!-- *风险情况:高、中、低、信息 -->
123				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS><!-- 漏洞简述: -->
124				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION><!-- *漏洞描述 -->
125				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION><!-- *解决方案/整改意见 -->
126				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
127				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	 <!-- 参考信息 -->
128			</VULNERABLITY>
129			<VULNERABLITY>
130				<NAME><![CDATA[Terminal Services Encryption Level is Medium or Low]]></NAME> 
131				<NO CVE="NONE" CNVD="NONE" MS="MS13-112" OTHER="NONE" />
132				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
133				<VULTYPE>弱口令</VULTYPE><!-- 漏洞类型:如缓冲区溢出、设置不当、弱口令、其他等等 -->
134				<CVSS>6.4</CVSS><!-- 通用漏洞评分: -->
135				<RISK></RISK>
136				<SYNOPSIS><![CDATA[The remote host is using weak cryptography.]]></SYNOPSIS>
137				<DESCRIPTION><![CDATA[The remote Terminal Services service is not configured to use strong cryptography.xxxxxxxxxxxxxxxxxxxxx]]></DESCRIPTION>
138				<SOLUTION><![CDATA[- Change RDP encryption level to one of :xxxxxxxxxxxxxxxxxx]]></SOLUTION>
139				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
140				<REFERENCE><![CDATA[The terminal services encryption level is set to :]]></REFERENCE>	
141			</VULNERABLITY>
142		</DATA>
143	</HOST>
144</SCANDATA>
145
146<SCANDATA TYPE="WEB">
147	<HOST WEB="HTTP:\\WWW.TEST.COM">
148		<WEBSERVERBANNER>Apache tomcat</WEBSERVERBANNER><!-- Web Server Banner信息, -->
149		<SERVERVERSION>Microsoft Windows 2008 R2</SERVERVERSION><!-- 服务器信息 -->
150		<TECHNOLOGIES>JSP</TECHNOLOGIES><!-- 使用语言 -->
151		<DATA>		
152			<VULNERABLITY>
153				<NAME><![CDATA[SQL注入漏洞]]></NAME> <!-- *漏洞名称: -->
154				<NO CVE="NONE" CNVD="NONE" MS="NONE" OTHER="NONE" />
155				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
156				<VULTYPE>注入类</VULTYPE><!-- 漏洞类型:如注入类、跨站脚本类、信息泄露类、弱口令/默认口令类、系统/服务漏洞类、权限/配置设置不当类、产品漏洞类、其他类 -->
157				<RISK></RISK><!-- *风险情况:高、中、低、信息 -->
158				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS><!-- 漏洞简述: -->
159				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION><!-- *漏洞描述 -->
160				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION><!-- *解决方案/整改意见 -->
161				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
162				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	 <!-- 参考信息 -->
163				<DETAILS>
164					<URL URL="HTTP:\\WWW.TEST.COM?DETAILS=100"><!-- *存在漏洞的url -->
165						<TYPE>STRING</TYPE><!-- 类型(string类型、int类型、search类型、反射性、存储型等等) -->
166						<PARAMETER><![CDATA[DETAILS=100' AND '1'='1]]></PARAMETER><!-- 存在漏洞的参数(可带测试脚本) -->
167						<REQUEST><![CDATA[GET /preSysApp/global/js/validate/depends/prototype.js HTTP/1.1
168								 Pragma: no-cache
169								 Cache-Control: no-cache]]>
170						</REQUEST><!-- 测试发送的request -->
171						<RESPONSE><!-- 接收的request -->
172						<![CDATA[
173						xxxxxxxxxxxxxxxxxx
174						]]>
175						</RESPONSE>
176					</URL>
177					<URL URL="HTTP:\\WWW.TEST.COM?id=120"><!-- *存在漏洞的url -->
178						<TYPE>INT</TYPE><!-- 类型(string类型、int类型、search类型、反射性、存储型等等) -->
179						<PARAMETER><![CDATA[ID=100 AND 1=1]]></PARAMETER><!-- 存在漏洞的参数(可带测试脚本) -->
180						<REQUEST><![CDATA[GET /preSysApp/global/js/validate/depends/prototype.js HTTP/1.1
181								 Pragma: no-cache
182								 Cache-Control: no-cache]]>
183						</REQUEST><!-- 测试发送的request -->
184						<RESPONSE>
185						<![CDATA[xxxxxxxxxxxxxxxxxx]]>
186						</RESPONSE><!-- 接收的request -->
187					</URL>
188				</DETAILS>
189			</VULNERABLITY>	
190			<VULNERABLITY>
191				<NAME><![CDATA[跨站脚本]]></NAME> <!-- *漏洞名称: -->
192				<NO CVE="NONE" CNVD="NONE" MS="NONE" OTHER="NONE" />
193				<!-- CVE="CVE编号" CNVD="CNVD编号" MS="微软编号" OTHER="其他编号" -->
194				<VULTYPE>跨站脚本类</VULTYPE><!-- 漏洞类型:如注入类、跨站脚本类、信息泄露类、弱口令/默认口令类、系统/服务漏洞类、权限/配置设置不当类、产品漏洞类、其他类 -->
195				<RISK></RISK><!-- *风险情况:高、中、低、信息 -->
196				<SYNOPSIS><![CDATA[It may be possible to get access to the remote host]]></SYNOPSIS><!-- 漏洞简述: -->
197				<DESCRIPTION><![CDATA[The remote version of the Remote Desktop Protocol Server (TerminalService) is vulnerable to a man-in-the-middle (MiTM) attack. The RDP]]></DESCRIPTION><!-- *漏洞描述 -->
198				<SOLUTION><![CDATA[- Force the use of SSL as a transport layer for this service if supported, or/and]]></SOLUTION><!-- *解决方案/整改意见 -->
199				<VALIDATE><![CDATA[XXXXX]]></VALIDATE><!-- 证据 -->
200				<REFERENCE><![CDATA[http://www.oxid.it/downloads/rdp-gbu.pdf]]></REFERENCE>	 <!-- 参考信息 -->
201				<DETAILS>
202					<URL URL="HTTP:\\WWW.TEST.COM?DETAILS=100"><!-- *存在漏洞的url -->
203						<TYPE>反射性</TYPE><!-- 类型(string类型、int类型、search类型、反射性、存储型等等) -->
204						<PARAMETER><![CDATA[DETAILS=100%20%3C%73%63%72%69%70%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E]]></PARAMETER><!-- 存在漏洞的参数(可带测试脚本) -->
205						<REQUEST><![CDATA[GET /preSysApp/global/js/validate/depends/prototype.js HTTP/1.1
206								 Pragma: no-cache
207								 Cache-Control: no-cache]]>
208						</REQUEST><!-- 测试发送的request -->
209						<RESPONSE><!-- 接收的request -->
210						<![CDATA[xxxxxxxxxxxxxxxxxx]]>
211						</RESPONSE>
212					</URL>
213				</DETAILS>
214			</VULNERABLITY>
215		</DATA>
216	</HOST>
217</SCANDATA>
218</REPORT>

python能提取excel还能处理,我就很开心了,还学到了xml相关的内容。

今天花了5小时把上面所有东东从0学完,到直接把工具做好我感觉也够神的了我)


Ssh to Parallels (Kali)
自学 Linux 命令