CN117076333B - 一种基于脚本断点与浏览器自动化的漏洞验证方法 - Google Patents

一种基于脚本断点与浏览器自动化的漏洞验证方法 Download PDF

Info

Publication number
CN117076333B
CN117076333B CN202311330186.2A CN202311330186A CN117076333B CN 117076333 B CN117076333 B CN 117076333B CN 202311330186 A CN202311330186 A CN 202311330186A CN 117076333 B CN117076333 B CN 117076333B
Authority
CN
China
Prior art keywords
script
breakpoint
browser
code
vulnerability
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.)
Active
Application number
CN202311330186.2A
Other languages
English (en)
Other versions
CN117076333A (zh
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.)
Chengdu No Sugar Information Tech Co ltd
Original Assignee
Chengdu No Sugar Information Tech Co ltd
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 Chengdu No Sugar Information Tech Co ltd filed Critical Chengdu No Sugar Information Tech Co ltd
Priority to CN202311330186.2A priority Critical patent/CN117076333B/zh
Publication of CN117076333A publication Critical patent/CN117076333A/zh
Application granted granted Critical
Publication of CN117076333B publication Critical patent/CN117076333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于脚本断点与浏览器自动化的漏洞验证方法,属于网络检测领域,通过步骤:预设准备、数据提取、压缩文件、判断还原、设置断点、触发断点、循环执行、结束流程,使验证人员得以完成构造异常、畸形的数据输入,解决了浏览器自动化不足的缺点,提高了对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率。

Description

一种基于脚本断点与浏览器自动化的漏洞验证方法
技术领域
本发明属于网络检测领域,具体涉及一种基于脚本断点与浏览器自动化的漏洞验证方法。
背景技术
针对网站应用的漏洞检测通常经过向目标发送特定的HTTP请求包并通过对返回包的内容进行特征检测来完成判断工作。然而,随着安全技术对抗的升级,现代的网站应用为了对抗漏洞检测或者来自攻击者对业务流程的分析、重放等行为,通常会对数据包进行一定程度的编码或加密处理。这些处理过程通常使用javascript语言进行编写,并且通常使用压缩混淆技术对脚本进行处理。这给漏洞验证开发人员来带来了极大的挑战,一方面需要从javascript文件中提取相关的编码或加密算法,另一方面由于漏洞验证脚本通常使用python、golang与yaml等进行编写,使得需要将相关的算法通常这些语言进行重新编写,当加密算法较为复杂时将使得此项工作变得难以完成。为了应对这一问题,知名漏洞验证框架nuclei通过支持无头浏览器自动化来解决此类问题。基于此项技术,漏洞验证人员无需关系javascript文件中的算法实现,只需模拟人工操作浏览器界面的流程,对网页进行输入、点击等操作行为,从而完成测试过程。
但是基于无头浏览器自动化的方案依然无法完整的解决上述问题,这是因为模拟人工操作浏览器界面的流程,通常只能进行正常的输入行为,例如:在填写银行卡号的位置通常只能模拟填写银行卡号,当填写不合法内容时,由于前端文件的限制,通常无法进行输入,导致测试流程无法进行。因此,基于无头浏览器自动化的技术更加适用于常规的软件功能完整性测试,而对于需要构造畸形输入、异常输入等漏洞验证测试时,则也存在不足。
发明内容
针对现有技术中存在的浏览器自动化流程通常无法实现异常或畸形的数据输入,浏览器自动化流程设置断点复杂,对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率较低的问题,本发明提出了一种基于脚本断点与浏览器自动化的漏洞验证方法。
为实现上述目的本发明所采用的技术方案是提供一种基于脚本断点与浏览器自动化的漏洞验证方法,包括如下步骤:
S1预设准备:提前准备如下数据:待设置断点的代码C1、触发断点后执行的代码C2、浏览器自动化操作集合 ;
S2数据提取:启动浏览器并加载目标网站,提取加载网站中所有使用javascript语言编写的脚本,形成脚本集合;
S3压缩文件:在脚本集合中,对代码C1进行压缩;
S4判断还原:对脚本集合进行与S3压缩文件步骤中相同的压缩操作,进而判断脚本集合内是否含有代码C1,如若含有则对代码C1在脚本集合中的断点位置信息进行记录和还原,如若不含有则继续执行压缩操作;
S5设置断点:若在脚本集合中找到了代码C1,则通过断点位置信息,设置断点;
S6触发断点:浏览器自动化操作集合在被执行的过程中,若触发了设置断点步骤中设置的断点,则执行代码C2,并将该执行过程的返回值保存于结果K1;
S7循环执行:循环执行浏览器自动化操作集合,直至浏览器自动化操作集合中的所有操作都被执行完;
S8结束流程 :对结果K1进行判断,流程结束。
较优的,S1预设准备步骤中的待设置断点的代码C1是用户为了进行漏洞分析而设置的代码,由javascript语言撰写而成。
较优的,S1预设准备步骤中的触发断点后执行的代码C2用于构造出畸形的输入内容以及改变后续执行流程。
较优的,S1预设准备步骤中的浏览器自动化操作集合用于指引浏览器在目标网页进行自动化操作。
较优的,S2数据提取步骤中的脚本集合中的脚本包括外部远程服务器的脚本以及目标网站中内嵌嵌入的脚本。
较优的,S3压缩文件步骤,是通过删除需要设置断点的代码中的空白符、缩进符以及换行符完成的。
较优的,S4判断还原步骤中的断点位置信息包括以下信息:脚本编号、所在行、所在列。
较优的,S6触发断点步骤中的结果K1,用于浏览器自动化执行数据的后续执行过程,以及后续的漏洞验证结果判断过程。
较优的,S6触发断点步骤,浏览器在执行浏览器自动化操作集合的过程中,通过触发断点来修改用户的输入内容,构建异常或畸形的数据。
较优的,所述S4判断还原步骤,是通过对S2数据提取步骤中形成的脚本集合中的每一个脚本进行与S3压缩文件步骤中同样的压缩操作,来判断是否包含代码C1的。
较优的,通过浏览器自动化完成后续的请求操作,绕过传统的经由发送HTTP数据包进行漏洞验证这一过程中需要大量分析、提取并转写编码或加密算法的工作,提高了对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率。
较优的,在浏览器自动化测试流程开始前和开始后查找并设置断点,可以解决需要在网页中动态加载的脚本中设置断点的问题。
较优的,通过原始文件片段自动从网站加载的所有脚本中查找并设置断点,简化断点设置过程。
相比现有技术,本发明的技术方案具有如下优点/有益效果:
1.可以在浏览器自动化流程中,通过设置断点、在断点处执行自定义文件的方式实现异常、畸形的数据输入,目前的浏览器自动化流程无法实现该功能。
2.可通过用户自定义的文件片段自动化查找断点位置并设置断点,极大简化了断点设置流程,避免了常规方案需要硬性指定断点所在的行号和列号带来的通用性问题。
3. 对于需要基于浏览器自动化的方式进行应用漏洞验证的场景,绕过了发送HTTP数据包进行漏洞验证这一需要大量分析、提取并转写加密算法的过程,在此工况下本方案进行漏洞验证脚本开发及编写的效率更高。
附图说明
为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1一种基于脚本断点与浏览器自动化的漏洞验证方法的流程示意图。
图2本发明实施例流程示意图。
具体实施方式
为使本发明目的、技术方案和优点更加清楚,下面对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中可以不对其进行进一步定义和解释。
实施例:
如图1、图2所示,一种基于脚本断点与浏览器自动化的漏洞验证方法,其具体实施例过程如下:
验证目标网站发送消息流程是否存在存储型跨站脚本漏洞,漏洞验证人员首先需要通过对目标应用程序进行人工分析,从目标应用程序的应用代码中找到潜在的存在安全问题的代码片段,为了测试并且验证该代码片段是否存在安全问题,漏洞验证人员通常可以使用浏览器自带的调试工具在目标代码片段上进行设置断点、然后完成一系列对浏览器内网页应用的操作,比如在表单输入内容、点击提交按钮来触发所设置的断点,并进行代码的分析与调试工作。为了将前述这一人工流程自动化,漏洞验证人员可以基于前述的人工分析过程,来准备以下数据:
需要设置断点的代码C1、触发断点时需要被自动化执行的代码C2、用于浏览器自动化操作的脚本集合P1。
上处过程中所述的代码C1为需要被设置断点处的diam片段,是用户从为了进行漏洞分析而设置的代码,在本实施例中,准备了需要设置断点的代码C1如下:
$.post("/sendmsg",{
msg:aes_encrypt(msg)
},function(res){
if(res.code===200){
此代码仅仅为本实施例所列举情况中使用的一种代码,在实际操作过程中,存在使用其他编程语言撰写的不同于上述代码,本领域技术人员也可以根据代码C1所要完成的功能,对代码C1进行适应性的改编。
该目标网站发送数据经过了加密处理,因此使用传统发送HTTP包的方法需要从javascript寻找加密算法,并且如果算法过于复杂,使用yaml的方式可能已经无法实现编写漏洞验证代码。
提取脚本文件: 启动浏览器并加载目标应用网站,从网站中提取脚本集合J1,脚本集合J1中所有脚本皆使用javascript语言编写;脚本集合J1包括来自外部远程服务器的脚本资源以及网站中内嵌的脚本内容。
判断查找:对脚本集合J1的每一个脚本进行压缩,用来判断脚本集合J1是否包含代码C1,如若包含则记录并还原出代码C1在未进行文件预处理前的脚本集合J1中的位置信息;代码C1在该脚本中的位置包括以下信息:脚本编号、所在行、所在列,以上信息即为断点位置信息。
设置断点:若成功还原了代码C1在该脚本中的位置,则通过浏览器的调试协议设置断点。
执行集合:执行准备数据中的脚本集合P1。
触发断点:若执行脚本集合P1时,触发了设置断点步骤中设置的断点,则执行代码C2;然后将输入变量msg被修改为漏洞验证向量,然后将代码C2执行后的返回结果保存至变量中。
代码C2用于构造出畸形的输入内容以及改变后续执行流程,在本实施例中,触发断点时需要被自动化执行的代码C2如下:
msg='<script/src=//x.com/></script>';
'ok'; //执行后的返回值
此代码仅仅为本实施例所列举情况中使用的一种代码,在实际操作过程中,存在使用其他编程语言撰写的不同于上述代码,本领域技术人员也可以根据代码C2所要完成的功能,对代码C2进行适应性的改编。
循环执行集合:循环执行脚本集合P1中的所有浏览器自动化操作,直到脚本集合P1中所有操作都被执行完成。
结束流程:记录判断规则结果,并结束流程。
浏览器在网页应用进行自动化,是指通过脚本断点在浏览器自动化过程中修改用户的输入内容,构建异常或畸形的数据,从而满足测试需求。
通过浏览器自动化完成后续的请求操作,绕过传统的经由发送HTTP数据包进行漏洞验证这一过程中需要大量分析、提取并转写编码或加密算法的工作,提高了对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率。
在浏览器自动化测试流程开始前和开始后查找并设置断点,可以解决需要在网页中动态加载的脚本中设置断点的问题。
以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,包括如下步骤:
S1预设准备:提前准备如下数据:待设置断点的代码C1、触发断点后执行的代码C2、浏览器自动化操作集合;所述代码C1是用户为了进行漏洞分析而设置的代码,由javascript语言撰写而成;所述代码C2用于构造出畸形的输入内容以及改变后续执行流程;
S2数据提取:启动浏览器并加载目标网站,提取加载网站中所有使用javascript语言编写的脚本,形成脚本集合;
S3压缩文件:对代码C1进行压缩;
S4判断还原:对脚本集合进行与S3压缩文件步骤中相同的压缩操作,进而判断脚本集合内是否含有代码C1,如若含有则对代码C1在脚本集合中的断点位置信息进行记录和还原,如若不含有则继续执行压缩操作;
S5设置断点:若在脚本集合中找到了代码C1,则通过断点位置信息,设置断点;
S6触发断点:浏览器自动化操作集合在被执行的过程中,若触发了设置断点步骤中设置的断点,则执行代码C2,并将该执行过程的返回值保存于结果K1;
S7循环执行:循环执行浏览器自动化操作集合,直至浏览器自动化操作集合中的所有操作都被执行完;
S8结束流程 :对结果K1进行判断,流程结束。
2.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S1预设准备步骤中的浏览器自动化操作集合用于指引浏览器在目标网页进行自动化操作。
3.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S2数据提取步骤中的脚本集合中的脚本包括外部远程服务器的脚本以及目标网站中内嵌嵌入的脚本。
4.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S3压缩文件步骤,是通过删除需要设置断点的代码中的空白符、缩进符以及换行符完成的。
5.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S4判断还原步骤中的断点位置信息包括以下信息:脚本编号、所在行、所在列。
6.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S6触发断点步骤中的结果K1,用于浏览器自动化执行数据的后续执行过程,以及后续的漏洞验证结果判断过程。
7.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S6触发断点步骤,浏览器在执行浏览器自动化操作集合的过程中,通过触发断点来修改用户的输入内容,构建异常或畸形的数据。
8.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述S4判断还原步骤,是通过对S2数据提取步骤中形成的脚本集合中的每一个脚本进行与S3压缩文件步骤中同样的压缩操作,来判断是否包含代码C1的。
CN202311330186.2A 2023-10-16 2023-10-16 一种基于脚本断点与浏览器自动化的漏洞验证方法 Active CN117076333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311330186.2A CN117076333B (zh) 2023-10-16 2023-10-16 一种基于脚本断点与浏览器自动化的漏洞验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311330186.2A CN117076333B (zh) 2023-10-16 2023-10-16 一种基于脚本断点与浏览器自动化的漏洞验证方法

Publications (2)

Publication Number Publication Date
CN117076333A CN117076333A (zh) 2023-11-17
CN117076333B true CN117076333B (zh) 2024-02-23

Family

ID=88704595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311330186.2A Active CN117076333B (zh) 2023-10-16 2023-10-16 一种基于脚本断点与浏览器自动化的漏洞验证方法

Country Status (1)

Country Link
CN (1) CN117076333B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
CN109657475A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 代码漏洞排查方法、装置、设备及存储介质
CN111881046A (zh) * 2020-07-30 2020-11-03 苏州浪潮智能科技有限公司 一种代码检测的方法、装置、设备及可读介质
CN112433929A (zh) * 2019-08-26 2021-03-02 深圳市珍爱捷云信息技术有限公司 网页调试方法、装置、计算机设备和存储介质
US11487643B1 (en) * 2018-11-12 2022-11-01 Xilinx, Inc. Debugging for integrated scripting applications
CN116226871A (zh) * 2023-05-08 2023-06-06 中汽智联技术有限公司 基于静态和动态结合的漏洞验证方法、设备和介质
CN116841655A (zh) * 2023-06-25 2023-10-03 中国建设银行股份有限公司 一种脚本执行方法、装置、设备、存储介质及产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2513793B1 (en) * 2009-12-15 2018-11-14 Synopsys, Inc. Method and system of runtime analysis
US9648139B2 (en) * 2013-12-19 2017-05-09 Adobe Systems Incorporated Inserting server-side breakpoints requested by remote development clients
US9507691B2 (en) * 2014-01-10 2016-11-29 International Business Machines Corporation Conditional component breakpoint setting system and method
US10521329B2 (en) * 2015-05-08 2019-12-31 Intergral GmbH Debugging system
US11811824B2 (en) * 2020-06-08 2023-11-07 Target Brands, Inc. Security system for detecting malicious actor's observation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US11487643B1 (en) * 2018-11-12 2022-11-01 Xilinx, Inc. Debugging for integrated scripting applications
CN109657475A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 代码漏洞排查方法、装置、设备及存储介质
CN112433929A (zh) * 2019-08-26 2021-03-02 深圳市珍爱捷云信息技术有限公司 网页调试方法、装置、计算机设备和存储介质
CN111881046A (zh) * 2020-07-30 2020-11-03 苏州浪潮智能科技有限公司 一种代码检测的方法、装置、设备及可读介质
CN116226871A (zh) * 2023-05-08 2023-06-06 中汽智联技术有限公司 基于静态和动态结合的漏洞验证方法、设备和介质
CN116841655A (zh) * 2023-06-25 2023-10-03 中国建设银行股份有限公司 一种脚本执行方法、装置、设备、存储介质及产品

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Chapter 9 - Exploitation scripting;Jason Andress等;Coding for Penetration Testers (Second Edition);第247-282页 *
JavaScript调试方法以及常见错误;李丹;中小企业管理与科技(下旬刊)(第07期);第295-297页 *
Phakpoom Chinprutthiwong等.Security Study of Service Worker Cross-Site Scripting.ACSAC '20: Annual Computer Security Applications Conference.2020,第643–654页. *
Shay Artzi等.Finding bugs in dynamic web applications.ISSTA '08: Proceedings of the 2008 international symposium on Software testing and analysis.2008,第261–272页. *
Web应用中安全漏洞检测技术的研究;张哲;中国优秀硕士学位论文全文数据库 信息科技辑(第5期);I139-48 *
Web应用常见注入式安全漏洞检测关键技术综述;王丹 等;北京工业大学学报;第42卷(第12期);第62-72页 *
Web软件自动化测试与持续集成技术应用研究;孙雅丽;中国优秀硕士学位论文全文数据库 信息科技辑(第3期);I138-2903 *

Also Published As

Publication number Publication date
CN117076333A (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
CN110324311B (zh) 漏洞检测的方法、装置、计算机设备和存储介质
CN110730107B (zh) 测试数据生成方法、装置、计算机设备和存储介质
CN113067743B (zh) 流规则提取方法、装置、系统及存储介质
CN102123058A (zh) 一种对网络协议解码器进行测试的测试设备和方法
CN109255240B (zh) 一种漏洞处理方法和装置
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
WO2019013266A1 (ja) 判定装置、判定方法、および、判定プログラム
CN110851352A (zh) 一种模糊测试系统及终端设备
CN113709126A (zh) 网络协议安全模糊测试方法、装置、设备以及存储介质
CN112653709A (zh) 漏洞检测方法、装置、电子设备及可读存储介质
CN116346456A (zh) 业务逻辑漏洞攻击检测模型训练方法及装置
CN107888451B (zh) 一种Web服务器的测试方法及装置
CN114338104A (zh) 安全网关解析功能验证方法、装置、设备及存储介质
CN113935041A (zh) 面向实时操作系统设备的漏洞检测系统及方法
CN117076333B (zh) 一种基于脚本断点与浏览器自动化的漏洞验证方法
CN111291377A (zh) 一种应用漏洞的检测方法及系统
CN111124937B (zh) 基于插桩函数辅助提高生成测试用例效率的方法及系统
CN111752819B (zh) 一种异常监控方法、装置、系统、设备和存储介质
KR101625890B1 (ko) 인터넷 응용 트래픽 프로토콜의 시그니처 변경 탐지를 위한 테스트 자동화 방법 및 시스템
CN115314268B (zh) 基于流量指纹和行为的恶意加密流量检测方法和系统
CN111949537A (zh) 接口的测试方法、装置、设备和介质
CN110752933A (zh) 一种验证码输入方法、装置、电子设备及存储介质
CN115827496A (zh) 代码的异常检测方法、装置、电子设备及存储介质
CN107229865B (zh) 一种解析Webshell入侵原因的方法及装置
US11921862B2 (en) Systems and methods for rules-based automated penetration testing to certify release candidates

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
GR01 Patent grant
GR01 Patent grant