Xss漏洞检测方法和装置的制造方法_4

文档序号:9527567阅读:来源:国知局
的网页。
[0096]例如,对于图5所示的网页来说,其URL可以是图5中的浏览器地址栏中的字符串:
[0097]http://192.168.0.1/admin/manage, asp ? uid = abc。
[0098]具体地,该URL可以包括协议部分“http”、域名部分“192.168.0.1”、路径部分^ admin/manage, asp ”和参数部分“uid = abc ”,其中,该协议部分表示访问网页所使用的传输协议是HTTP协议,该域名部分用于指示Web服务器的域名系统的主机名或IP地址是192.168.0.1,该路径部分用于指示Web服务器的网页文件的地址,参数部分用于指示由网页所设置的可选项,在本实施例中,可以表示用户名或者说用户ID为abc。如图5所示,基于网页文件的编写逻辑,使用该URL访问网页时,页面可以回显用户名abc,并向用户展示以下文字:“欢迎回来,abc”。
[0099]在本发明实施例中,若要对图4中所示的网页进行XSS漏洞的检测,则可以通过获取单元902先获取待检测的网页的URL和脚本代码,例如,待检测的网页的URL 可以是 http://192.168.0.1/admin/manage, asp ? uid = abc,脚本代码可以是<script>alert ( “XSS”) </script〉。在基础上,通过更新单元904,可以将脚本代码更新到待检测的网页的URL中,例如,更新后的URL可以是图6中的浏览器地址栏中的字符串:
[0100]http://192.168.0-l/admin/manage.asp ? uid =〈script>alert ( “XSS,,)〈/script〉。
[0101]也即,在本发明实施例中,待检测的网页的URL中的参数部分被替换为脚本代码。进而后台服务器通过浏览器使用更新后的URL访问网页时则可能在浏览器上展示出图6所示的页面,从图6中可以看出,Web服务器也执行了从URL中提取出的脚本代码,也即生成了具有叹号警示标志的提示框,并且该提示框中显示有作为alert函数的变量的字符串“XSS_1”。
[0102]进一步地,根据本发明实施例提供的检测装置,后台服务器可以通过判断单元908判断Web服务器是否执行了携带在更新后的URL中的脚本代码,进而通过输出单元910,在Web服务器执行脚本代码时,判断出待检测的网页存在跨站脚本攻击XSS漏洞。
[0103]以前述实施例中所描述的网页为例,无论是对于图3所示的网页还是图5所示的网页,通过图4或图6所示的访问结果,可以判断出这两个网页均存在XSS漏洞。
[0104]具体来说,在本发明实施例中,若判断出Web服务器已执行更新后的URL中的脚本代码,则可以认为网页或Web服务器未对URL中携带的JS代码进行过滤,也即,网页文件中缺乏对来自于外部的脚本代码的过滤逻辑,存在编写不完善的问题,导致运行网页文件的Web服务器未对访问请求中的脚本代码或者是包含有脚本代码的访问请求进行过滤处理,这便形成了 XSS漏洞。利用该XSS漏洞,恶意的用户可以利用上传的脚本代码向网页中植入自定义的代码,在上述情形下,若其他用户对该网页进行访问,则会将恶意的用户植入的代码视为是原网页或Web服务器提供的可信任的代码,进而可能会带来个人信息如银行卡密码等的泄露,从而导致安全风险。通过根据本发明实施例提供的检测装置,便可以实现对网页中是否存在此类XSS漏洞进行准确、有效地检测。
[0105]进一步地,在本发明实施例中,获取单元902中所描述的获取操作、更新单元904中所描述的更新操作和判断单元908中所描述的判断操作均可以有多种可行的实施方式,本发明并不会对上述各操作具体的实现方式进行限定。例如图7所示,可选地,在本发明实施例中,上述更新单元904可以包括:
[0106]1)更新模块,用于将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
[0107]更具体地,作为一种可行的方式,在本发明实施例中,上述更新模块可以进一步包括:
[0108]1)第一查找子模块,用于在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;2)第一替换子模块,用于使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL ;或者,
[0109]3)第二查找子模块,用于在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;
[0110]4)第二替换子模块,用于使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
[0111]例如,以图5中的浏览器地址栏中的URL为例,该URL中的指示符“ ? ”可以用于指示参数部分的起始位置,而“=”可以用于指示参数部分中的待传输给网页的参数的起始位置。在上述场景下,第一查找子模块可以将“=”作为第一指示符,并使用脚本代码替换URL中的该第一指示符之后的字符串abc,从而形成图6中的浏览器地址栏中的更新后的URL:http://192.168.0.1/admin/manage, asp ? uid = <script>alert ( “XSS,,)〈/script〉。
[0112]此外,在本发明的一些实施例中,待检测的网页的参数部分中的参数可以有多个,多个参数之间可以利用符号“&”分隔。在这一场景下,则可以将用于标识第一个参数的起始位置的符号“=”作为第一指示符,将用于标识第二个参数的起始位置的符号“&”作为第二指示符,并将第一指示符与第二指示符之间的第一个参数替换为脚本代码。通过这一方式,同样可以将脚本代码上传到Web服务器。
[0113]除此之外,作为一种可行的对Web服务器是否执行携带在更新后的URL中的脚本代码的方式,如图8所示,在本发明实施例中,上述访问单元906可以包括:
[0114]1)访问模块,用于调用浏览器使用更新后的URL访问待检测的网页;其中,
[0115]判断单元908可以包括:
[0116]2)判断模块,用于判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果,若浏览器获取到执行结果,则判断出Web服务器已执行脚本代码。
[0117]进一步可选地,在本发明实施例中,获取单元902可以包括:
[0118]1)获取模块,用于获取待检测的网页的URL和脚本代码,其中,脚本代码包括JavaScript 的 alert 函数;其中,
[0119]上述判断模块可以进一步包括:
[0120]1)判断子模块,用于判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果包括:判断浏览器是否生成alert弹窗并提示由alert函数所指示的内容,若是,则判断出Web服务器已执行脚本代码。
[0121]在本发明实施例中,后台服务器上的检测程序可以调用浏览器的内核,从而在一方面可以通过浏览器来访问待检测的网页,在另一方面可以通过浏览器来判断Web服务器是否执行脚本代码并返回相应的执行结果。更具体的实施例可以参照前述实施例中的对应描述,本发明在此不作赘述。
[0122]实施例3
[0123]根据本发明实施例,还提供了一种用于存储如实施例1中所描述的检测方法的进程实体的存储介质,如图10所示,该存储介质被设置为存储用于执行以下步骤的程序代码:
[0124]S1002:获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码;
[0125]S1004:将脚本代码更新到待检测的网页的URL中;
[0126]S1006:使用更新后的URL访问待检测的网页;
[0127]S1008:判断Web服务器是否执行该脚本代码;
[0128]S1010:若Web服务器执行脚本代码,则判断出待检测的网页存在跨站脚本攻击XSS漏洞。
[0129]可选地,在本实施例中,上述存储介质可以位于如图2所示的后台服务器202上,具体地,该存储介质可以设置在一台网络设备上,也可以分功能地设置在多台网络设备上,本发明对此不作限定。
[0130]可选地,在本实施例中,处理器可以根据存储介质中存储的用于执行步骤S1004的代码执行以下操作:
[0131]S12、将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
[0132]可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S12的代码执行以下操作:
[0133]S14、在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL;或者,
[0134]S16、在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
[0135]可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S1006的代码执行以下操作:S18、调用浏览器使用更新后的URL访问待检测的网页;其中,
[0136]处理器还可以根据存储介质中存储的用于执行步骤S1008的代码执行以下操作:S20、判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果,若浏览器获取到执行结果,则判断出Web服务器已执行脚本代码。
[0137]可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S1002的代码执行以下操作:S22、获取待检测的网页的URL和脚本代码,其中,脚本代码包括JavaScript 的 alert 函数;其中,
[0138]处理器还可以根据存储介质中存储的用于执行步骤S20的代码执行以下操作:S24、判断浏览器是否生成alert弹窗并提示由alert函数所指示的内容,若是,则判断出Web服务器已执行脚本代码。
[0139]可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
[0140]上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0141]实施例4
[0142]根据本发明实施例,还提供了一种用于实施如实施例1中所描述的获取方法的服务器,如图11所示,该服务器包括:
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1