CN113806752A - 一种漏洞测试方法、装置及存储介质 - Google Patents

一种漏洞测试方法、装置及存储介质 Download PDF

Info

Publication number
CN113806752A
CN113806752A CN202111144782.2A CN202111144782A CN113806752A CN 113806752 A CN113806752 A CN 113806752A CN 202111144782 A CN202111144782 A CN 202111144782A CN 113806752 A CN113806752 A CN 113806752A
Authority
CN
China
Prior art keywords
unicode
target
characters
information
url address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111144782.2A
Other languages
English (en)
Inventor
蒋庆芝
阳志强
薛进
胡红星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Automotive Innovation Corp
Original Assignee
China Automotive Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Automotive Innovation Corp filed Critical China Automotive Innovation Corp
Priority to CN202111144782.2A priority Critical patent/CN113806752A/zh
Publication of CN113806752A publication Critical patent/CN113806752A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出了一种漏洞测试方法、装置及存储介质。方法包括:获取待测试系统的第一URL地址;根据第一URL地址的主体信息确定多个目标ASCII字符;获取unicode目标集合,unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;根据目标ASCII字符,在unicode目标集合中确定与目标ASCII字符对应的目标unicode字符;根据目标unicode字符确定第二URL地址;根据第二URL地址对待测试系统进行漏洞测试。本发明中,可以根据unicode目标集合得到目标unicode字符,从而得到第二URL地址,由于unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系,因此,第二URL地址的字符无法被转换为punycode字符,所以利用第二URL地址进行漏洞测试可以绕过web安全防御机制,优化漏洞的测试效果,提升漏洞的测试效率。

Description

一种漏洞测试方法、装置及存储介质
技术领域
本发明涉及网络安全技术领域,具体涉及一种漏洞测试方法、装置及存储介质。
背景技术
网站漏洞检测通常是指基于漏洞数据库,通过扫描等手段,对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞的一种安全检测行为。
传统的漏洞测试技术可以被web安全防御机制防御,无法检测得到网站漏洞,导致漏洞测试效率低。
发明内容
有鉴于此,本申请提出了一种漏洞测试方法、装置及存储介质,至少可以解决现有技术中的漏洞测试方法无法绕过web安全防御机制、漏洞测试效率低的技术问题。
根据本申请的一方面,提供了一种漏洞测试方法,包括:
获取待测试系统的第一URL地址;
根据所述第一URL地址的主体信息确定多个目标ASCII字符,所述主体信息为第一URL地址中排除协议信息的信息;
获取unicode目标集合,所述unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;
根据所述目标ASCII字符,在所述unicode目标集合中确定与所述目标ASCII字符对应的目标unicode字符;
根据所述目标unicode字符确定第二URL地址;
根据所述第二URL地址对所述待测试系统进行漏洞测试。
在一种可能的实现方式中,所述获取待测试系统的第一URL地址之前,所述方法还包括:
获取unicode标准集合;
在所述unicode标准集合中确定第一unicode字符,所述第一unicode字符与所述punycode标准集合的字符之间设有对应关系;
在所述unicode标准集合中筛除所述第一unicode字符,得到所述unicode目标集合。
在一种可能的实现方式中,所述获取unicode标准集合之后,所述方法还包括:获取第一映射关系信息,所述第一映射关系信息用于表征所述unicode标准集合的字符与punycode标准集合的字符之间的对应关系;
所述在所述unicode标准集合中确定第一unicode字符包括:根据所述第一映射关系信息,在所述unicode标准集合中确定所述第一unicode字符。
在一种可能的实现方式中,所述获取unicode目标集合之后,所述方法还包括:获取预设数值;
所述根据所述目标ASCII字符,在所述unicode目标集合中确定目标unicode字符包括:
根据所述目标ASCII字符和所述预设数值,确定第一ASCII字符;
根据所述第一ASCII字符,在所述unicode目标集合中确定与所述第一ASCII字符对应的所述目标unicode字符。
在一种可能的实现方式中,所述获取unicode目标集合之后,所述方法还包括:获取第二映射关系信息,所述第二映射关系信息用于表征所述unicode目标集合的字符与所述ASCII标准集合的字符之间的对应关系;
所述根据所述第一ASCII字符,在所述unicode目标集合中确定目标unicode字符包括:根据所述第一ASCII字符和所述第二映射关系信息,在所述unicode目标集合中确定与所述第一ASCII字符对应的所述目标unicode字符。
在一种可能的实现方式中,所述根据所述目标unicode字符确定第二URL地址包括:将所述第一URL地址中的所述第一ASCII字符分别替换为对应的所述目标unicode字符,得到所述第二URL地址。
在一种可能的实现方式中,所述第一URL地址包括协议信息、域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息;
根据所述第一URL地址的主体信息确定多个目标ASCII字符包括:根据所述第一URL地址的所述域名信息、所述端口信息、所述虚拟目录信息、所述文件名信息、所述锚信息和所述参数信息,确定多个所述目标ASCII字符。
在一种可能的实现方式中,所述根据所述第二URL地址对所述待测试系统进行漏洞测试包括:
根据所述第二URL地址访问所述待测试系统;
在访问成功的情况下,显示漏洞告警信息。
根据本申请的另一方面,提供了一种漏洞测试装置,包括:
第一获取模块,用于获取待测试系统的第一URL地址;
第一确定模块,用于根据所述第一URL地址的主体信息确定多个目标ASCII字符,所述主体信息为第一URL地址中排除协议信息的信息;
第二获取模块,用于获取unicode目标集合,所述unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;
第二确定模块,用于根据所述目标ASCII字符,在所述unicode目标集合中确定与所述目标ASCII字符对应的目标unicode字符;
第三确定模块,用于根据所述目标unicode字符确定第二URL地址;
测试模块,用于根据所述第二URL地址对所述待测试系统进行漏洞测试。
根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
本发明中,可以根据unicode目标集合得到目标unicode字符,从而得到第二URL地址,由于unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系,因此,第二URL地址的字符无法被转换为punycode字符,所以利用第二URL地址进行漏洞测试可以绕过web安全防御机制(针对ssrf漏洞的防御机制),优化漏洞的测试效果,提升漏洞的测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据一示例性实施例示出的一种漏洞测试方法的流程示意图;
图2为根据另一示例性实施例示出的一种漏洞测试方法的流程示意图;
图3为根据一示例性实施例示出的一种漏洞测试装置的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
本发明提出了一种漏洞测试方法、装置及存储介质,至少可以解决现有技术中的漏洞测试方法无法绕过web安全防御机制、漏洞测试效率低的技术问题,本发明具体是以如下技术方案实现的。
结合图1和图2所示,本说明书实施例提供的一种漏洞测试方法,包括:
步骤S101:获取待测试系统的第一URL地址。
本说明书实施例中的待测试系统可以为具有SSRF漏洞的系统,例如可以为HTTP客户端。URL地址即网络地址。测试人员可以向漏洞测试装置输入信息,可以根据测试人员输入的信息确定第一URL地址。
步骤S102:根据第一URL地址的主体信息确定多个目标ASCII字符,主体信息为第一URL地址中排除协议信息的信息。
ASCII码,即美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,它是最通用的信息交换标准。本说明书实施例中,可以对第一URL地址中除协议部分之外的其他部分的字符进行逐个识别,从而确定目标ASCII字符。
步骤S103:获取unicode目标集合,unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系。
unicode(又称统一码、万国码、单一码)是一种在计算机上使用的字符编码,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
punycode(域名代码)是一种表示unicode码和ASCII码的有限的字符集。目前,域名使用美国信息交换标准代码字符已成为惯用标准,一些国际化域名可以被转换成十进位制美国信息交换标准代码的域名(punycode)。punycode标准集合可以是计算机行业内的punycode标准版。
本说明书实施例中,可以在漏洞测试装置的服务器中预先存储unicode目标集合,在需要使用unicode目标集合时直接调用即可。unicode目标集合中的字符与punycode标准集合的字符之间不具有对应关系,unicode目标集合中的字符均无法被转换为punycode字符。
步骤S104:根据目标ASCII字符,在unicode目标集合中确定与目标ASCII字符相对应的目标unicode字符。
在计算机行业内,Unicode编码和ASCII编码之间存在对应关系,每一个ASCII字符都可以对应于至少一个unicode字符。
本说明书实施例中,可以在unicode目标集合中查找与目标ASCII字符相对应的unicode字符,将查找得到的unicode字符作为目标unicode字符。
步骤S105:根据目标unicode字符确定第二URL地址。
本说明书实施例中,可以将第一URL地址中的目标ASCII字符逐个替换为目标unicode字符,得到第二URL地址。
步骤S106:根据第二URL地址对待测试系统进行漏洞测试。
漏洞测试可以是指在漏洞被利用之前发现漏洞。本说明书实施例中,可以根据第二URL地址对待测试系统进行漏洞测试,如果通过第二URL地址可以访问第一URL对应的页面,则表明存在漏洞。
目前,服务器请求伪造(ssrf)是由攻击者构造形成的由服务端发起请求的一个安全漏洞,它允许攻击者使用目标服务器来代表攻击者自己执行HTTP请求。在目前的ssrf安全漏洞测试场景中,防御者可以使攻击者无法成功提交一个期望之外的URL。在web应用提交URL的场景,都可以通过此方式进行防御。
本说明书实施例中,可以根据unicode目标集合得到目标unicode字符,从而得到第二URL地址,由于unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系,因此,第二URL地址的字符无法被转换为punycode字符,所以利用第二URL地址进行漏洞测试可以绕过web安全防御机制(针对ssrf漏洞的防御机制),优化漏洞的测试效果,提升漏洞的测试效率。
在一种可能的实现方式中,步骤S101之前,方法还包括:
步骤S107:获取unicode标准集合;
步骤S108:在unicode标准集合中确定第一unicode字符,第一unicode字符与punycode标准集合的字符之间设有对应关系;
步骤S109:在unicode标准集合中筛除第一unicode字符,得到unicode目标集合。
本说明书实施例中,unicode标准集合可以是计算机行业内的unicode标准版,unicode标准集合的最新版本是7.0版,其中的中日韩文字为74500个。可以近似认为,全世界现有的符号当中,三分之二以上来自东亚文字。
本说明书实施例中,可以将unicode标准集合中的第一unicode字符筛除,从而得到unicode目标集合,可以使unicode目标集合更准确,确保unicode目标集合中的字符与punycode字符之间不具有对应关系。
在一种可能的实现方式中,步骤S107之后、步骤S108之前,方法还包括:获取第一映射关系信息,第一映射关系信息用于表征unicode标准集合的字符与punycode标准集合的字符之间的对应关系;
步骤S108包括:根据第一映射关系信息,在unicode标准集合中确定第一unicode字符。
本说明书实施例中,可以根据第一映射关系信息,确定与punycode标准集合的字符之间具有对应关系的第一unicode字符,可以更准确地确定第一unicode字符,从而得到更精确的unicode目标集合。
在一种可能的实现方式中,步骤S103之后、步骤S104之前,方法还包括步骤S111:获取预设数值;
步骤S104包括:
步骤S1041:根据目标ASCII字符和预设数值,确定第一ASCII字符;
步骤S1042:根据第一ASCII字符,在unicode目标集合中确定与第一ASCII字符对应的目标unicode字符。
本说明书实施例中,第一ASCII字符的数量可以为预设数值,可以在多个目标ASCII字符中随机确定预设数值数量的第一ASCII字符。例如,目标ASCII字符的数量为十,将预设数值设置为二,则可以在十个目标ASCII字符中随机选取两个并将其作为第一ASCII字符。也可以根据预设的优先级选取预设数值数量的第一ASCII字符,例如,可以设定ASCII字符a的优先级高于ASCII字符b,则优先将目标ASCII字符中的ASCII字符a作为第一ASCII字符。第一ASCII字符中可以具有重复的字符,例如,第一URL地址为http://www.aabcdde.com,如果将预设数值设置为六,则可以随机地确定六个第一ASCII字符,由此可以得到waadeo,或者也可以得到wabcdm,其中,当六个第一ASCII字符为waadeo时,两个字符a在第一URL地址中的位置是不同的。
在确定第一ASCII字符后,可以根据第一ASCII字符在unicode目标集合中进行查找,确定unicode目标集合中与第一ASCII字符对应的目标unicode字符。
本说明书实施例中的预设数值可以由用户根据实际情况自行设置,提高了测试的灵活性和测试效率。
本说明书实施例中,也可以将目标ASCII字符全部确定为第一ASCII字符。
在一种可能的实现方式中,步骤S103之后、步骤S104之前,方法还包括:获取第二映射关系信息,第二映射关系信息用于表征unicode目标集合的字符与ASCII标准集合的字符之间的对应关系;
步骤S1042中可以根据第一ASCII字符和第二映射关系信息,在unicode目标集合中确定与第一ASCII字符对应的目标unicode字符。
本说明书实施例中,第二映射关系信息也可以表征unicode标准集合的字符与ASCII标准集合的字符之间的对应关系;由于unicode目标集合是对unicode标准集合筛除第一unicode字符之后得到的,并未改变unicode目标集合中的字符与ASCII标准集合的字符之间的对应关系,因此可以将unicode标准集合的字符与ASCII标准集合的字符之间的对应关系作为第二映射关系信息。在步骤S1042中,可以根据第二映射关系信息和第一ASCII字符,在unicode目标集合中查找与第一ASCII字符相对应的目标unicode字符,可以确保得到的目标unicode字符不能转换为punycode。
在一种可能的实现方式中,步骤S105包括步骤S1051:将第一URL地址中的第一ASCII字符分别替换为对应的目标unicode字符,得到第二URL地址。
本说明书实施例中,逐个对第一URL地址中的目标ASCII字符进行判断,如果字符是第一ASCII字符则将其替换为对应的目标unicode字符,如果字符不是第一ASCII字符则保持不变。在替换过程中,仅将第一ASCII字符替换为对应的目标unicode字符,第一ASCII字符在第一URL地址中的位置、第一ASCII字符对应的目标unicode字符在第二URL地址中的位置相同。可以根据第一URL地址确定第一ASCII字符在第一URL地址中的位置信息,根据第一URL地址、第一ASCII字符在第一URL地址的位置信息,将第一URL地址中的第一ASCII字符分别替换为对应的目标unicode字符,得到第二URL地址,运算过程简单,运行效率高。
在一种可能的实现方式中,第一URL地址包括协议信息、域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息;步骤S101包括步骤S1011:根据第一URL地址的域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息,确定多个目标ASCII字符。
本说明书实施例中,从第一URL地址的域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息中确定目标ASCII字符,提高最终得到的第二URL地址的有效性,可以提升漏洞测试效率。
在一种可能的实现方式中,步骤S106包括:
步骤S1061:根据第二URL地址访问待测试系统;
步骤S1062:在访问成功的情况下,显示漏洞告警信息。
本说明书实施例中,在访问成功的情况下显示漏洞告警信息,可以使测试人员更加直观地了解测试结果,提高测试效率。
现有技术中,在ssrf漏洞进行攻击的数据流程中,攻击者构造了一个http请求,发送给漏洞应用,漏洞应用通过http等协议转发给目标应用。在web应用对ssrf等漏洞的防御措施中,通常会对域名进行验证,来达到过滤域名的目的。
本说明书实施例基于对ssrf漏洞的测试方法,以及浏览器客户端所遵循的国际化域名转换机制,提出了一种通过筛选被浏览器客户端所支持的unicode、查找可利用的字符来绕过ssrf等漏洞的防御措施,达到有效测试漏洞的方法。本说明书实施例可以应用到大部分web渗透测试中需要加载恶意URL的场景中。
在上述的浏览器客户端转换机制中,本说明书实施例可以筛除unicode中可以被转换成Punycode的字符,可以继续筛选出其他可用的unicode,一方面来使浏览器客户端正确解析,另一方面可以绕过以上的域名过滤机制。
本说明书实施例提出的攻击方法难以被防御,攻击请求在漏洞程序看来是合法的请求,同时如果漏洞程序通过字符串或者正则匹配来防御,无法被有效识别攻击请求,大大提高了漏洞利用的成功率。
本说明书实施例中,可以在unicode字符中,挑选从0x80,也就是非ascii字符开始,到unicode最后一位0x10ffff结束,从中挑选出可以被浏览器客户端正确解析,且能正确映射到期望域名的字符。可以通过浏览器运行代码的方式得到unicode目标集合,具体地,可以以Microsoft Edge浏览器为例,在实际的漏洞利用中也可以据此方法,找出可用的字符映射,来对漏洞应用中的http请求包或者库文件进行测试。由于需要筛选出适合浏览器的unicode,因此可以采用JavaScript编写筛选代码。
识别思路如下:构造一个URL,http://test${unicodeChar}.com;对其中的unicodeChar进行遍历替换,从0x80开始,到0x10ffff结束;利用FileEncodings等技术可以快速批量解码;每次替换后,浏览器进行解析,获取URL中的主机名,对比解析后的主机名和元素URL中主机名是否一致,如果不一致,可作为潜在的字符映射对象。同时也需要匹配解析后的主机名是否被浏览器Punycode编码,如果是则也是无效的;打印出所有有效的unicode字符,和被浏览器转换后的字符。
根据以上思路可以用代码实现,具体如下:
Figure BDA0003285245790000101
Figure BDA0003285245790000111
利用for循环来遍历unicode字符,在每次循环中对unicode字符进行判断,是否满足条件,并打印结果,最后输出所有的遍历结果。下表为遍历结果的部分数据。
unicode编号 unicode字符 ASCII字符
U+a0 <u>a</u> a
U+aa Ignored
U+ad 2 2
U+b2 3 3
下面结合具体的URL链接对本说明书实施例进行说明。假设第一URL地址为http://www.google.com。根据第一URL地址可以确定多个目标ASCII字符,包括w、w、w、.、g、o、o、g、l、e、.、c、o和m。可以从多个目标ASCII字符中选取部分字符,作为第一ASCII字符,在unicode目标集合中确定第一ASCII字符对应的目标unicode字符。本次将“g”、“o”、“o”、“g”、“l”、“e”和“.”作为第一ASCII字符,其对应的目标unicode字符分别为
Figure BDA0003285245790000113
和“。”,进而得到的第二URL地址为“https://www.
Figure BDA0003285245790000114
。com”。进一步地,使用第二URL地址访问google,进行漏洞测试。
下面对漏洞测试的效果进行说明。
测试www.
Figure BDA0003285245790000115
。com检测能否被php(Hypertext Preprocessor,超文本预处理器)中的cURL库正确的发送,步骤如下。
第一步,将www.google.com解析到本地地址,先配置以下dns解析条目:
Figure BDA0003285245790000112
Figure BDA0003285245790000121
第二步,在本地启动一个测试的http server:
Figure BDA0003285245790000122
第三步,使用编写一个简单的ssrf漏洞验证代码:
Figure BDA0003285245790000123
第四步,访问目标目录下的vul.txt触发漏洞:
(rootwarning kali)-[/var/www/html]
#php ssrf.php www.
Figure BDA0003285245790000124
。com:8889/vul.txt
success!
第五步,修改php代码,增加防御机制,这里使用严格的过滤机制,对关键字www.google.com进行完全匹配,检测到该字符串即告警,并停止访问:
Figure BDA0003285245790000131
第六步,验证防御机制,可以看到识别出了关键字,并进行告警:
(rootwarning kali)-[/var/www/html]
#php ssrf.php www.google.com:8889/vul.txt
Attackdetected!
可以发现,使用第一URL地址(www.google.com)则会被防御过滤机制识别并防御、告警,无法访问google。
第七步,使用转换后的unicode字符进行访问,可以发现绕过了过滤机制:
(rootwarning kali)-[/var/www/html]
#php ssrf.php www.
Figure BDA0003285245790000141
。com:8889/vul.txt
success!
可以发现,使用第二URL地址(www.
Figure BDA0003285245790000142
。com)则可以绕过防御过滤机制,可以访问google,可以成功测试到漏洞。
通过上述七个步骤可以得知,本说明书实施例可以绕过web安全防御机制(针对ssrf漏洞的防御机制),优化漏洞的测试效果,提升漏洞的测试效率。
结合图3所示,本说明书实施例提供一种漏洞测试装置,包括:
第一获取模块10,用于获取待测试系统的第一URL地址;
第一确定模块20,用于根据第一URL地址的主体信息确定多个目标ASCII字符,主体信息为第一URL地址中排除协议信息的信息;
第二获取模块30,用于获取unicode目标集合,unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;
第二确定模块40,用于根据目标ASCII字符,在unicode目标集合中确定与目标ASCII字符对应的目标unicode字符;
第三确定模块50,用于根据目标unicode字符确定第二URL地址;
测试模块60,用于根据第二URL地址对待测试系统进行漏洞测试。
本说明书实施例中,可以根据unicode目标集合得到目标unicode字符,从而得到第二URL地址,由于unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系,因此,第二URL地址的字符无法被转换为punycode字符,所以利用第二URL地址进行漏洞测试可以绕过web安全防御机制(针对ssrf漏洞的防御机制),优化漏洞的测试效果,提升漏洞的测试效率。
在一种可能的实现方式中,装置还包括:
第三获取模块,用于获取unicode标准集合;
第四确定模块,用于在unicode标准集合中确定第一unicode字符,第一unicode字符与punycode标准集合的字符之间设有对应关系;
第五确定模块,用于在unicode标准集合中筛除第一unicode字符,得到unicode目标集合。
在一种可能的实现方式中,装置还包括第四获取模块,第四获取模块用于获取第一映射关系信息,第一映射关系信息用于表征unicode标准集合的字符与punycode标准集合的字符之间的对应关系;
第四确定模块用于根据第一映射关系信息,在unicode标准集合中确定第一unicode字符。
在一种可能的实现方式中,装置还包括第五获取模块,第五获取模块用于获取预设数值;
第二确定模块40包括:
第一确定单元,用于根据目标ASCII字符和预设数值,确定第一ASCII字符;
第二确定单元,用于根据第一ASCII字符,在unicode目标集合中确定与第一ASCII字符对应的目标unicode字符。
在一种可能的实现方式中,装置还包括第六获取模块,第六获取模块用于获取第二映射关系信息,第二映射关系信息用于表征unicode目标集合的字符与ASCII标准集合的字符之间的对应关系;
第二确定单元用于根据第一ASCII字符和第二映射关系信息,在unicode目标集合中确定与第一ASCII字符对应的目标unicode字符。
在一种可能的实现方式中,第三确定模块50包括第三确定单元,第三确定单元用于将第一URL地址中的第一ASCII字符分别替换为对应的目标unicode字符,得到第二URL地址。
在一种可能的实现方式中,第一URL地址包括协议信息、域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息;
第一确定模块20包括第四确定单元,第四确定单元用于根据第一URL地址的域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息,确定多个目标ASCII字符。
在一种可能的实现方式中,第三确定模块50包括:
访问单元,用于根据第二URL地址访问待测试系统;
显示单元,用于在访问成功的情况下,显示漏洞告警信息。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
此外,本说明书实施例还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述漏洞测试方法。
计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种漏洞测试方法,其特征在于,包括:
获取待测试系统的第一URL地址;
根据所述第一URL地址的主体信息确定多个目标ASCII字符,所述主体信息为所述第一URL地址中排除协议信息的信息;
获取unicode目标集合,所述unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;
根据所述目标ASCII字符,在所述unicode目标集合中确定与所述目标ASCII字符对应的目标unicode字符;
根据所述目标unicode字符确定第二URL地址;
根据所述第二URL地址对所述待测试系统进行漏洞测试。
2.如权利要求1所述的漏洞测试方法,其特征在于,所述获取待测试系统的第一URL地址之前,所述方法还包括:
获取unicode标准集合;
在所述unicode标准集合中确定第一unicode字符,所述第一unicode字符与所述punycode标准集合的字符之间设有对应关系;
在所述unicode标准集合中筛除所述第一unicode字符,得到所述unicode目标集合。
3.如权利要求2所述的漏洞测试方法,其特征在于,所述获取unicode标准集合之后,所述方法还包括:获取第一映射关系信息,所述第一映射关系信息用于表征所述unicode标准集合的字符与punycode标准集合的字符之间的对应关系;
所述在所述unicode标准集合中确定第一unicode字符包括:根据所述第一映射关系信息,在所述unicode标准集合中确定所述第一unicode字符。
4.如权利要求1所述的漏洞测试方法,其特征在于,所述获取unicode目标集合之后,所述方法还包括:获取预设数值;
所述根据所述目标ASCII字符,在所述unicode目标集合中确定与所述目标ASCII字符对应的目标unicode字符包括:
根据所述目标ASCII字符和所述预设数值,确定第一ASCII字符;
根据所述第一ASCII字符,在所述unicode目标集合中确定与所述第一ASCII字符对应的所述目标unicode字符。
5.如权利要求4所述的漏洞测试方法,其特征在于,所述获取unicode目标集合之后,所述方法还包括:获取第二映射关系信息,所述第二映射关系信息用于表征所述unicode目标集合的字符与所述ASCII标准集合的字符之间的对应关系;
所述根据所述第一ASCII字符,在所述unicode目标集合中确定与所述第一ASCII字符对应的所述目标unicode字符包括:根据所述第一ASCII字符和所述第二映射关系信息,在所述unicode目标集合中确定与所述第一ASCII字符对应的所述目标unicode字符。
6.如权利要求4所述的漏洞测试方法,其特征在于,所述根据所述目标unicode字符确定第二URL地址包括:将所述第一URL地址中的所述第一ASCII字符分别替换为对应的所述目标unicode字符,得到所述第二URL地址。
7.如权利要求1所述的漏洞测试方法,其特征在于,所述第一URL地址包括协议信息、域名信息、端口信息、虚拟目录信息、文件名信息、锚信息和参数信息;
根据所述第一URL地址的主体信息确定多个目标ASCII字符包括:根据所述第一URL地址的所述域名信息、所述端口信息、所述虚拟目录信息、所述文件名信息、所述锚信息和所述参数信息,确定多个所述目标ASCII字符。
8.如权利要求1所述的漏洞测试方法,其特征在于,所述根据所述第二URL地址对所述待测试系统进行漏洞测试包括:
根据所述第二URL地址访问所述待测试系统;
在访问成功的情况下,显示漏洞告警信息。
9.一种漏洞测试装置,其特征在于,包括:
第一获取模块,用于获取待测试系统的第一URL地址;
第一确定模块,用于根据所述第一URL地址的主体信息确定多个目标ASCII字符,所述主体信息为所述第一URL地址中排除协议信息的信息;
第二获取模块,用于获取unicode目标集合,所述unicode目标集合的字符与punycode标准集合的字符之间不具有对应关系;
第二确定模块,用于根据所述目标ASCII字符,在所述unicode目标集合中确定与所述目标ASCII字符对应的目标unicode字符;
第三确定模块,用于根据所述目标unicode字符确定第二URL地址;
测试模块,用于根据所述第二URL地址对所述待测试系统进行漏洞测试。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至8中任意一项所述的方法。
CN202111144782.2A 2021-09-28 2021-09-28 一种漏洞测试方法、装置及存储介质 Pending CN113806752A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111144782.2A CN113806752A (zh) 2021-09-28 2021-09-28 一种漏洞测试方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111144782.2A CN113806752A (zh) 2021-09-28 2021-09-28 一种漏洞测试方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN113806752A true CN113806752A (zh) 2021-12-17

Family

ID=78938784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111144782.2A Pending CN113806752A (zh) 2021-09-28 2021-09-28 一种漏洞测试方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113806752A (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060067784A (ko) * 2004-12-15 2006-06-20 한국전자통신연구원 유니코드를 이용한 침입 탐지 시스템 우회 공격 대응 장치및 방법
KR101271449B1 (ko) * 2011-12-08 2013-06-05 (주)나루씨큐리티 Dns 강제우회 기반 악성트래픽 통제 및 정보유출탐지 서비스를 제공하는 방법, 서버 및 기록매체
CN104301322A (zh) * 2014-10-23 2015-01-21 北京知道创宇信息技术有限公司 基于中文域名的网络安全检测方法与设备
US20150096033A1 (en) * 2013-09-30 2015-04-02 International Business Machines Corporation Security Testing Using Semantic Modeling
US20160342838A1 (en) * 2015-05-21 2016-11-24 Umm Al-Qura University Method and system for converting punycode text to ascii/unicode text
US9882933B1 (en) * 2017-05-17 2018-01-30 Farsight Security, Inc. Tokenization of domain names for domain name impersonation detection using matching
WO2018213574A1 (en) * 2017-05-17 2018-11-22 Farsight Security, Inc. System, method and domain name tokenization for domain name impersonation detection
CN108881329A (zh) * 2018-09-30 2018-11-23 曾鸿坤 一种用于防御服务器端请求伪造漏洞的系统及方法
US20190050559A1 (en) * 2017-08-11 2019-02-14 Verisign, Inc. Identification of visual international domain name collisions
US10505985B1 (en) * 2016-04-13 2019-12-10 Palo Alto Networks, Inc. Hostname validation and policy evasion prevention
US20200053119A1 (en) * 2018-08-09 2020-02-13 Morgan Stanley Services Group Inc. Optically analyzing domain names
CN110881024A (zh) * 2019-08-14 2020-03-13 奇安信科技集团股份有限公司 漏洞的探测方法及装置、存储介质、电子装置
US20200228500A1 (en) * 2019-01-15 2020-07-16 Infoblox Inc. Detecting homographs of domain names
CN112287349A (zh) * 2019-07-25 2021-01-29 腾讯科技(深圳)有限公司 安全漏洞检测方法及服务端

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060067784A (ko) * 2004-12-15 2006-06-20 한국전자통신연구원 유니코드를 이용한 침입 탐지 시스템 우회 공격 대응 장치및 방법
KR101271449B1 (ko) * 2011-12-08 2013-06-05 (주)나루씨큐리티 Dns 강제우회 기반 악성트래픽 통제 및 정보유출탐지 서비스를 제공하는 방법, 서버 및 기록매체
US20150096033A1 (en) * 2013-09-30 2015-04-02 International Business Machines Corporation Security Testing Using Semantic Modeling
CN104301322A (zh) * 2014-10-23 2015-01-21 北京知道创宇信息技术有限公司 基于中文域名的网络安全检测方法与设备
US20160342838A1 (en) * 2015-05-21 2016-11-24 Umm Al-Qura University Method and system for converting punycode text to ascii/unicode text
US10505985B1 (en) * 2016-04-13 2019-12-10 Palo Alto Networks, Inc. Hostname validation and policy evasion prevention
WO2018213574A1 (en) * 2017-05-17 2018-11-22 Farsight Security, Inc. System, method and domain name tokenization for domain name impersonation detection
US9882933B1 (en) * 2017-05-17 2018-01-30 Farsight Security, Inc. Tokenization of domain names for domain name impersonation detection using matching
US20190050559A1 (en) * 2017-08-11 2019-02-14 Verisign, Inc. Identification of visual international domain name collisions
US20200053119A1 (en) * 2018-08-09 2020-02-13 Morgan Stanley Services Group Inc. Optically analyzing domain names
CN108881329A (zh) * 2018-09-30 2018-11-23 曾鸿坤 一种用于防御服务器端请求伪造漏洞的系统及方法
US20200228500A1 (en) * 2019-01-15 2020-07-16 Infoblox Inc. Detecting homographs of domain names
CN112287349A (zh) * 2019-07-25 2021-01-29 腾讯科技(深圳)有限公司 安全漏洞检测方法及服务端
CN110881024A (zh) * 2019-08-14 2020-03-13 奇安信科技集团股份有限公司 漏洞的探测方法及装置、存储介质、电子装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴礼发等: "网络攻防原理与技术 第3版", 30 June 2021, pages: 264 - 266 *
李威;李晓红;: "Web应用存储型XSS漏洞检测方法及实现", 计算机应用与软件, no. 01, 15 January 2016 (2016-01-15) *
涂玲;马跃;程诚;周彦晖;: "基于协议混合变形的Web安全模糊测试与效用评估方法", 计算机科学, no. 05, 15 May 2017 (2017-05-15) *

Similar Documents

Publication Publication Date Title
US11580760B2 (en) Visual domain detection systems and methods
US11586881B2 (en) Machine learning-based generation of similar domain names
CN108427731B (zh) 页面代码的处理方法、装置、终端设备及介质
CN112866023B (zh) 网络检测、模型训练方法、装置、设备及存储介质
CN109768992B (zh) 网页恶意扫描处理方法及装置、终端设备、可读存储介质
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
JP6708794B2 (ja) 判定装置、判定方法、および、判定プログラム
KR20180081053A (ko) 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들
US11270001B2 (en) Classification apparatus, classification method, and classification program
CN109889511B (zh) 进程dns活动监控方法、设备及介质
CN111756750B (zh) 安全访问方法、装置、设备及存储介质
WO2019123455A1 (en) System and method for blocking phishing attempts in computer networks
CN108470126B (zh) 数据处理方法、装置及存储介质
CN115664859A (zh) 基于云打印场景下的数据安全分析方法、装置、设备及介质
CN115314236A (zh) 在域名系统(dns)记录集中检测网络钓鱼域的系统和方法
CN112583827A (zh) 一种数据泄露检测方法及装置
CN112600864A (zh) 一种验证码校验方法、装置、服务器及介质
CN113806752A (zh) 一种漏洞测试方法、装置及存储介质
JP2020109611A (ja) コンピュータシステム内の悪意のあるアクティビティの源を検出するシステムおよび方法
CN116015800A (zh) 一种扫描器识别方法、装置、电子设备及存储介质
CN111756749B (zh) 安全访问方法、装置、设备及存储介质
CN113992390A (zh) 一种钓鱼网站的检测方法及装置、存储介质
CN115310082A (zh) 信息处理方法、装置、电子设备及存储介质
KR20130077184A (ko) 악성코드에 감염된 홈페이지 탐지 장치 및 방법
CN113051876A (zh) 恶意网址识别方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination