检测常驻式跨站脚本漏洞的方法和装置制造方法及图纸

技术编号:11378118 阅读:77 留言:0更新日期:2015-04-30 20:33
本发明专利技术提供了一种检测常驻式跨站脚本漏洞的方法,所述方法包括:向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网页存储;向所述网页服务器发送访问所述网页的访问请求;接收所述网页服务器根据所述访问请求返回的访问响应包;若所述访问响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息。本发明专利技术提供的检测常驻式跨站脚本漏洞的方法,若访问响应包中存在测试脚本代码,说明存在常驻式跨站脚本漏洞,则执行该测试脚本代码,从而根据该测试脚本代码发出漏洞信息。整个检测过程自动化实现,检测效率高。本发明专利技术还提供了一种检测常驻式跨站脚本漏洞的装置。

【技术实现步骤摘要】
检测常驻式跨站脚本漏洞的方法和装置
本专利技术涉及计算机安全
,特别是涉及一种检测常驻式跨站脚本漏洞的方法和装置。
技术介绍
跨站脚本(XSS,CrossSiteScripting)漏洞是一种经常出现在网页中的计算机安全漏洞,它允许恶意攻击者往网页里插入恶意代码,当用户浏览该页之时,嵌入其中的恶意代码会被触发,从而达到恶意用户的特殊目的,比如盗取敏感信息等。常驻式跨站脚本漏洞是跨站脚本漏洞的其中一种,它允许将恶意代码存储在网页服务器中,之后用户访问该网页服务器的网页时,该网页会从网页服务器拉取恶意代码并执行,危害极大。然而,目前还没有行之有效的自动检测常驻式跨站脚本漏洞的方法,一般通过人工查看源代码来检测是否存在常驻式跨站脚本漏洞,检测效率极低。
技术实现思路
基于此,有必要针对人工检测常驻式跨站脚本漏洞检测效率低的技术问题,提供一种检测常驻式跨站脚本漏洞的方法和装置。一种检测常驻式跨站脚本漏洞的方法,所述方法包括:向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网页存储;向所述网页服务器发送访问所述网页的访问请求;接收所述网页服务器根据所述访问请求返回的访问响应包;若所述访问响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息。一种检测常驻式跨站脚本漏洞的装置,所述装置包括:测试请求模块,用于向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网页存储;访问请求模块,用于向所述网页服务器发送访问所述网页的访问请求;响应包接收模块,用于接收所述网页服务器根据所述访问请求返回的访问响应包;脚本执行模块,用于若所述访问响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息。上述检测常驻式跨站脚本漏洞的方法和装置,通过向网页服务器发送包含测试脚本代码的测试请求包,使得测试脚本代码在网页服务器上对应网页存储。然后向网页服务器发送访问网页的请求,接收网页服务器根据该访问请求返回的访问响应包。由于网页服务器接收到测试请求包后,有可能对其中的一些参数不进行转义处理,若网页服务器对测试脚本代码不进行转义处理就直接存储下来,则说明存在常驻式跨站脚本漏洞。因此若访问响应包中存在测试脚本代码,说明存在常驻式跨站脚本漏洞,则执行该测试脚本代码,从而根据该测试脚本代码发出漏洞信息。整个检测过程自动化实现,检测效率高。附图说明图1为一个实施例中检测常驻式跨站脚本漏洞的方法的流程示意图;图2为一个实施例中生成测试请求包的步骤的流程示意图;图3为一个实施例中执行测试脚本代码,根据测试脚本代码发出漏洞信息的步骤的流程示意图;图4为一个具体应用场景中该检测常驻式跨站脚本漏洞的方法应用于测试终端中进行漏洞检测的示意图;图5为一个实施例中检测常驻式跨站脚本漏洞的装置的结构框图;图6为另一个实施例中检测常驻式跨站脚本漏洞的装置的结构框图;图7为一个实施例中脚本执行模块的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提供了一种检测常驻式跨站脚本漏洞的方法,该方法包括:步骤102,向网页服务器发送包含测试脚本代码的测试请求包;测试脚本代码在网页服务器上对应网页存储。测试请求包包含测试脚本代码,终端向网页服务器发送测试请求包,从而使得网页服务器在使用CGI(CommonGatewayInterface,公共网关接口)程序处理测试请求包时,将测试脚本代码与网页对应存储。其中,测试脚本代码用于执行时发出漏洞信息。这里的网页可以是网站中的一个页面,也可以是基于网页的网络应用的一个页面。由于网页服务器接收到测试请求包后,有可能对其中的一些参数不进行转义处理,若网页服务器收到测试脚本代码后不进行转义处理,直接将测试脚本代码存储下来,则说明存在常驻式跨站脚本漏洞。若网页服务器将测试脚本代码转义为文本信息,终端在收到该文本信息后,终端上的浏览器在处理该文本信息时只是将其作为文本处理,不会导致测试脚本代码的执行。其中,转义是指将HTML(HypertextMarkupLanguage,超文本标记语言)代码中的特定字符转化为转义字符串(EscapeSequence)的过程,这些特定字符中的一些字符在HTML代码中有特殊的含义,比如“&lt;”和“&gt;”用来表示标签,当这些特定字符不是用来表示标签而是字符本身时,就需要将该特定字符转义为转义字符串。网页服务器将转义字符串发送给浏览器后,浏览器处理时将转义字符串显示为特定字符本身。转义字符串分成三部分:第一部分是一个&符号(Ampersand);第二部分是实体(Entity)名字或者是#加上实体编号;第三部分是一个分号。比如,要显示小于号“<”,转义字符串为“&lt;”或者“&#60;”。步骤104,向网页服务器发送访问网页的访问请求。终端可通过网页的URL(UniformResourceLocator,统一资源定位符)向该URL对应的网页服务器发送访问请求。可在终端的浏览器中直接输入URL或者通过点击另一个网页的链接从而触发向网页服务器发送访问请求。当有多个网页时,可预先在文本文件或数据库中存储各个网页的URL,检测漏洞时,从文本文件或数据库中逐个读取各个网页的URL,从而向各个网页对应的网页服务器发送访问请求,以实现自动化检测常驻式跨站脚本漏洞。步骤106,接收网页服务器根据访问请求返回的访问响应包。网页服务器接收到终端发送的访问请求后,向终端返回访问响应包。若该网页中用到已存储的测试脚本代码或将测试脚本代码转义后得到的文本信息,则访问响应包中会包含该测试脚本代码或者该文本信息。步骤108,若访问响应包中包含测试脚本代码,则执行测试脚本代码,根据测试脚本代码发出漏洞信息。若访问响应包中包含测试脚本代码,说明网页服务器存储测试脚本代码时未对测试脚本代码进行转义处理,说明网页存在常驻式跨站脚本漏洞,则执行该测试脚本代码,根据该测试脚本代码发出漏洞信息。比如测试脚本代码执行时,弹出消息框,在消息框中显示“发现XSS漏洞”的消息,从而发出漏洞信息。若访问响应包中包含将测试脚本代码转义后获得的文本信息,说明不存在常驻式跨站脚本漏洞,而且文本信息也不会作为脚本执行,则不会发出漏洞信息。举例说明,若测试请求包中包含的测试脚本代码为:&lt;imgsrc=#onerror=eval('window.location=\'http://att.isd.com/x.php\'')&gt;若网页服务器将该测试脚本代码进行转义处理,转义为文本信息:&lt;imgsrc=#onerror=eval(&#39;window.location=\&#39;http://att.isd.com/x.php\&#39;&#39;)&gt;其中,“<”转义为“&lt;”,“'”转义为“&#39;”,“&g本文档来自技高网...

【技术保护点】
一种检测常驻式跨站脚本漏洞的方法,所述方法包括:向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网页存储;向所述网页服务器发送访问所述网页的访问请求;接收所述网页服务器根据所述访问请求返回的访问响应包;若所述访问响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息。

【技术特征摘要】
1.一种检测常驻式跨站脚本漏洞的方法,所述方法包括:向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网页存储;向所述网页服务器发送访问所述网页的访问请求;接收所述网页服务器根据所述访问请求返回的访问响应包;若所述访问响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息;若所述访问响应包中包含将所述测试脚本代码转义后获得的文本信息,则判定所述网页服务器不存在所述常驻式跨站脚本漏洞。2.根据权利要求1所述的方法,其特征在于,所述向网页服务器发送包含测试脚本代码的测试请求包之前,还包括:获取网页发送给网页服务器的原始请求包;检测所述原始请求包,确定所述原始请求包中的参数;用所述测试脚本代码替换所述原始请求包中的所述参数,获得测试请求包。3.根据权利要求2所述的方法,其特征在于,所述用所述测试脚本代码替换所述原始请求包中的所述参数,获得测试请求包,包括:用所述测试脚本代码逐个替换所述原始请求包中的每个所述参数,获得对应每个所述参数的多个测试请求包。4.根据权利要求1所述的方法,其特征在于,所述向网页服务器发送包含测试脚本代码的测试请求包之后,还包括:接收所述网页服务器根据所述测试请求包返回的测试响应包;若所述测试响应包中包含所述测试脚本代码,则执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息。5.根据权利要求1所述的方法,其特征在于,所述执行所述测试脚本代码,根据所述测试脚本代码发出漏洞信息,包括:执行所述测试脚本代码,得到测试服务器的地址标识;根据所述测试服务器的地址标识向所述测试服务器发送漏洞信息。6.根据权利要求1所述的方法,其特征在于,所述漏洞信息包括存在漏洞的网页的标识、漏洞信息发送端的标识、检测到漏洞的浏览器标识、检测到漏洞的时间和存在漏洞的网页服务器地址中的至少一种。7.一种检测常驻式跨站脚本漏洞的装置,其特征在于,所述装置包括:测试请求模块,用于向网页服务器发送包含测试脚本代码的测试请求包;所述测试脚本代码在所述网页服务器上对应网...

【专利技术属性】
技术研发人员:朱杨军
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1