一种存储跨站攻击脚本漏洞检测方法、装置及系统的制作方法_3

文档序号:8339906阅读:来源:国知局
止一个,因此,当完成一个参数值的提交后,需要先判断是否还有其他的参数没有完成检测,若是,则获取一个待检测的参数,重复执行该待检测参数的检测过程,即构造一个新的特征字符串,并将其作为待检测参数的值提交至网站服务器。
[0065]步骤S280、判断是否继续检测下一个网页,若是;则流程重新回到步骤S220 ;否贝U,流程结束。
[0066]由于待检测网站中的网页可能不止一个,因此,当完成一个网页的检测后,需要先判断是否还有其他的网页没有完成检测,若是,则重新获取一个目标网页,重复执行网页的检测过程。
[0067]以上所述为参数值的提交过程,而在提交参数值后,还需要对待检测网站进行遍历,并分析是否检测到步骤S260中提交的特征字符串。而具体的遍历过程可与第一实施例相似。
[0068]参阅图6,其为查找特征字符串的具体流程示意图,具体过程包括以下步骤:
[0069]步骤S201,获取待检测网站的网页内容。
[0070]在初始时,可从待检测网站的入口网页开始。向网站服务器发起HTTP请求,获取入口网页的内容,并完成后续的步骤S202到步骤S204。
[0071]可以理解,在步骤S260中如果带了某个测试帐号的cookie提交请求,那么在步骤S201 (爬取网页时)中也应该带上相应的测试帐号的Cookie进行爬取。
[0072]步骤S202,判断网页中是否找到步骤S260中提交的唯一标识符;若是,则执行步骤S203 ;否则,执行步骤S204。
[0073]步骤S260中提交的唯一标识符可能具有多个,因此需要将网页的内容与每个唯一标识符逐一进行比对。每检测到一个唯一标识符,相应执行步骤S203,直到所有唯一标识符比对完毕。
[0074]步骤S203,记录XSS漏洞。
[0075]例如,可将XSS漏洞对应的域名、网页名以及参数名记录下来。
[0076]步骤S204,判断是否继续访问下一个网页。若是,则重新执行步骤S201 ;否则,流程结束。
[0077]对于入口网页,其内应包含该网站内其他网页的链接。在入口网页检测完成后,可以再检测这些链接所指向的网页,这些链接所指向的网页可以称为当前网页的子网页。可以理解,子网页中仍然包括子网页的链接。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,对于所有的网网页进行检测实质上是对这个树形结构进行遍历的过程。
[0078]根据本实施例的存储跨站攻击脚本漏洞检测方法,可以高效的对某个目标网站中是否存在XSS漏洞做出检测。
[0079]第三实施例
[0080]本实施例的提供一种存储跨站攻击脚本漏洞检测方法,其用于对一个或多个待检测网站检测可能存在的XSS漏洞。参阅图7,上述的方法包括以下步骤:
[0081]步骤S310,提交特征字符串。
[0082]具体地,获取一个或多个网站到的待检测网页,针对每个网页,获取待检测的参数,并为每个待检测的参数生成特征字符串,并将生成的特征字符串提交至对应的网站服务器。其具体过程还可参考前述的各实施例。
[0083]提交的特征字符串内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
[0084]步骤S320,等待预定时间后将唯一标识符作为关键字提交至搜索引擎进行查询。
[0085]一般来说,搜索引擎的爬虫系统会定期抓取网络中所有的网页内容并建立索引。上述的预定时间例如就是该搜索引擎的索引间隔。也就是说,一个网站的内容更新,在经过索引间隔后,应被搜索引擎所收录。此时,将唯一标识符提交至搜索引擎进行查询。如果与此唯一标识符对应的参数具有XSS漏洞,应可在搜索引擎中检索到至少一条记录。
[0086]步骤S330,判断是否检测到结果;若是,则执行步骤S340。
[0087]如上所述,如果在搜索引擎中检索到记录则说明对应的参数具有XSS漏洞,需要进行记录。
[0088]步骤S340,记录XSS漏洞。
[0089]例如,可将XSS漏洞对应的域名、网页名以及参数名记录下来。
[0090]此外,如果检测到唯一标识符的网页与提交唯一标识会的网页在域名上毫无关联,还可记录这两个网站之间的关联关系。此关联关系可用于第一实施例中遍历所有可能输出提交的参数的值的网页。
[0091]根据本实施例的存储跨站攻击脚本漏洞检测方法,可部分利用现有的搜索引擎系统实现XSS漏洞的检测,可减少网络资源的消耗,而且由于搜索引擎全网络抓取的特性,SP使在A网站提交的内容实际上是在表面上看起来毫无关联的B网站中显示,也可以实现XSS漏洞的检测。
[0092]第四实施例
[0093]本实施例提供一种存储跨站攻击脚本漏洞检测装置,其可用于图1所示的漏洞检测服务器100中。也就是说,本实施例的漏洞检测装置即为图1中的漏洞检测模块124。参阅图8,上述的装置包括:参数获取模块41、字符串构造模块42、参数提交模块43、检测模块44、以及漏洞记录模块45。
[0094]参数获取模块41用于获取目标网页的待检测参数。
[0095]目标网页是指对应于一个网址(Uniform Resource Locator,URL),例如“http://WWW.test, com/publish, php”的网页。可以理解,一个网页是由网站服务器(如网站服务器200)内的一个或多个脚本生成并返回至客户端(如漏洞检测服务器100)。为了与网站服务器进行交互,前端网页中会具有多个参数,其可通过POST方式GET方式提交至网站服务器。具体地,可以通过Javascript脚本或者表单(Form)向网站服务器提交参数及其值。网站服务器在接收到请求后,会处理这些参数,而一些参数的值可能会被存储至数据库内。在存储过程中,如果网站服务器内的脚本中存在XSS漏洞,则恶意代码就可能被存储在数据库中。因此,上述的待检测参数就是指前端网页中的能被网站服务器接收并处理的参数。具体实施时,可以获取所有的参数,或者仅获取用户可输入的参数,或者仅获取可能会被存储的参数。
[0096]以上述的网页“http://www.test, com/publish, php”为例,其可以具有两个参数:content以及user。这两个参数都可以进行检测,也可以是只检测部分参数,例如仅检测参数 content。
[0097]字符串构造模块42用于构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符。
[0098]上述的可触发存储跨站脚本攻击的字符例如可包括:”、’、〈、> 等,但并不以此为限,任何可触发XSS漏洞的字符均可。上述的唯一标识符用于作为上述的特征字符串的唯—标识。
[0099]以上述的参数content为例,生成的特征字符串例如可为“〈www.test.com_pubIish.php_content> ”。在此特征字符串中,可触发存储跨站脚本攻击的字符为“〈> ”,而P隹一标识符为 www.test.com_publish.php_content。
[0100]为了使特征字符串易于被识别,唯一标识符内还可包括目标网页的域名、网页名以及参数名。
[0101 ] 参数提交模块43用于将所述特征字符串作为所述待检测参数的值提交至所述目标网页。
[0102]例如,根据目标网页的URL、待检测参数、以及步骤S120中构造出的特征字符串生成一个网址。以上述的网页“http://www.test, com/publish, php”为例生成的网址例如可为:“http://www.test, com/publish, php ? content=<www.test.com_publish.php_content>&user=aaa”。然后根据此网址发起HTTP请求,则参数即被提交至对应的网站服务器内。
[0103]以上是以GET的方式为例进行说明,然而本实施例的方法,并不限于采用GET方式提交待检测参数的值。例如,还可以采用POST方式提交待检测参数的值。
[0104]可以理解,由于提交的参数的值内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
[0105]检测模块44用于遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符。
[0106]检测模块44可以包括一个网络爬虫模块,用于抓取所有可能输出所述提参数值的网页。网络爬虫可以从该网站的入口页面开始,在获取入口页面的源代码后,分析其内包括的其他网页的链接,然后逐一抓取这些链接所指向的网页,对于每个被抓取的网页都再一次分析其内包含的链接,并抓取这些链接所指向的网页。重复抓取、分析、再抓取的过程直到该网站内所的链接都被抓取。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,网络
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1