CN115828265A - 源码跨站脚本漏洞检测方法、装置、电子设备及存储介质 - Google Patents

源码跨站脚本漏洞检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115828265A
CN115828265A CN202211636143.2A CN202211636143A CN115828265A CN 115828265 A CN115828265 A CN 115828265A CN 202211636143 A CN202211636143 A CN 202211636143A CN 115828265 A CN115828265 A CN 115828265A
Authority
CN
China
Prior art keywords
source code
content
script
analysis
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.)
Pending
Application number
CN202211636143.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.)
State Grid Smart Grid Research Institute Co ltd
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Smart Grid Research Institute Co ltd
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Information and Telecommunication Branch of State Grid Jiangsu Electric Power 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 State Grid Smart Grid Research Institute Co ltd, State Grid Corp of China SGCC, State Grid Jiangsu Electric Power Co Ltd, Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Smart Grid Research Institute Co ltd
Priority to CN202211636143.2A priority Critical patent/CN115828265A/zh
Publication of CN115828265A publication Critical patent/CN115828265A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及一种源码跨站脚本漏洞检测方法、装置、电子设备及存储介质,包括:通过反代码变形操作调整源码格式以提取源码内容;基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。由此,通过构建特征表达式和数据流分析实现静态漏洞检测,通过构建攻击向量动态模拟发掘源码注入点,动静结合提高源码跨站脚本漏洞检测准确率,准确定位并输出源码漏洞点。

Description

源码跨站脚本漏洞检测方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机领域,尤其涉及一种源码跨站脚本漏洞检测方法、装置、电子设备及存储介质。
背景技术
伴随着互联网技术不断升级,网络安全问题始终是发展时的焦点问题,其中网络攻击问题尤为的突出;根据OWASP(开放式Web应用程序安全项目)组织公布的2021-TOP10漏洞排名中,注入攻击仍然居于前三,并且属于注入攻击的XSS跨站脚本漏洞也位于top10之内;由此XSS跨站脚本漏洞仍然是互联网当前的危险漏洞之一;跨站脚本漏洞XSS攻击方式是攻击者在页面各元素,如HTML标签属性、事件中注入恶意脚本,当用户浏览该页面时,嵌入在其中的恶意内容会被执行,从而达到恶意攻击用户的目的。XSS恶意攻击的危害涉及有盗取用户的cookie信息,仿冒用户身份进行非法操作;进行钓鱼攻击;在网站内进行挂马;甚至可以实现远程控制,严重威胁用户隐私、财产安全。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种源码跨站脚本漏洞检测方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种源码跨站脚本漏洞检测方法,包括:
通过反代码变形操作调整源码格式以提取源码内容;
基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;
采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;
基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。
在一个可能的实施方式中,所述方法还包括:
基于预设构建规则,将提取到的源码内容采用静态分析技术构建特征表达式,其中,所述构建规则包括元字符构建规则、控制次数字符构建规则和内容字符构建规则;结合源码数据流分析检测识别源码敏感内容,挖掘源码静态漏洞点,其中,所述源码数据流分析包括生成变量矩阵、输入点矩阵和标签矩阵。
在一个可能的实施方式中,所述方法还包括:
构建攻击向量进行输入点动态验证测试,其中,所述攻击向量在操作符号的控制下组合各类基元素标签构建而成。
在一个可能的实施方式中,所述方法还包括:
S1:采用特征表达式获取脚本内全部声明变量,并以键值对形式存储;
S2:探测脚本内S1中全部声明变量的位置信息,基于所述位置信息将对应脚本内的变量转换为对应的变量值;
S3:对S2内所有的变量值进行类型判别和长度计算,将变量值、变量值类别、长度以DataFrame格式存储构建变量矩阵。
在一个可能的实施方式中,所述方法还包括:
设定敏感内置函数,使用恶性内容的特征表达式检测参数内容的安全性,若存在恶性内容则输出对应的敏感内置函数及其参数;
采用特征表达式,基于URL构建语法定位脚本中的拼接URL操作,并定位存储对应字符串的变量,检测变量值内是否含有恶意内容;
对于完成S2变量值替换后的语句,若语句为赋值语句并且等号两侧结尾为DOM函数下的赋值操作,则抽取被赋值一方使用的id或class或name或tagname,将抽取到的信息传递至动态测试中用作payload注入效果检验的分析内容。
在一个可能的实施方式中,所述方法还包括:
若变量值为DOM函数从网页标签中提取的内容,则直接将完整的函数作为变量值进行存储。
在一个可能的实施方式中,所述方法还包括:
加载页面,并向输入元素注入攻击向量,监测DOM函数状态以及页面状态;
设定攻击向量的预期执行结果为弹窗操作,实时查询页面状态,以检验攻击向量是否执行成功;
对于脚本分析中获取的元素,提取outerHTML属性,检验脚本分析中获取的元素是否存在攻击向量的部分内容;
基于检验攻击向量是否执行成功和检验脚本分析中获取的元素是否存在攻击向量的部分内容的检测结果,确定输入元素是否为源码跨站脚本漏洞点。
第二方面,本发明实施例提供一种源码跨站脚本漏洞检测装置,包括:
提取模块,用于通过反代码变形操作调整源码格式以提取源码内容;
构建模块,用于基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;
监测模块,用于采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;
检测模块,用于基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。
在一个可能的实施方式中,所述构建模块,还用于基于预设构建规则,将提取到的源码内容采用静态分析技术构建特征表达式,其中,所述构建规则包括元字符构建规则、控制次数字符构建规则和内容字符构建规则;结合源码数据流分析检测识别源码敏感内容,挖掘源码静态漏洞点,其中,所述源码数据流分析包括生成变量矩阵、输入点矩阵和标签矩阵。
在一个可能的实施方式中,所述构建模块,还用于构建攻击向量进行输入点动态验证测试,其中,所述攻击向量在操作符号的控制下组合各类基元素标签构建而成。
在一个可能的实施方式中,所述构建模块,还用于S1:采用特征表达式获取脚本内全部声明变量,并以键值对形式存储;S2:探测脚本内S1中全部声明变量的位置信息,基于所述位置信息将对应脚本内的变量转换为对应的变量值。S3:对S2内所有的变量值进行类型判别和长度计算,将变量值、变量值类别、长度以DataFrame格式存储构建变量矩阵。
在一个可能的实施方式中,所述构建模块,还用于设定敏感内置函数,使用恶性内容的特征表达式检测参数内容的安全性,若存在恶性内容则输出对应的敏感内置函数及其参数;采用特征表达式,基于URL构建语法定位脚本中的拼接URL操作,并定位存储对应字符串的变量,检测变量值内是否含有恶意内容;对于完成S2变量值替换后的语句,若语句为赋值语句并且等号两侧结尾为DOM函数下的赋值操作,则抽取被赋值一方使用的id或class或name或tagname,将抽取到的信息传递至动态测试中用作payload注入效果检验的分析内容。
在一个可能的实施方式中,所述构建模块,还用于若变量值为DOM函数从网页标签中提取的内容,则直接将完整的函数作为变量值进行存储。
在一个可能的实施方式中,所述检测模块,还用于加载页面,并向输入元素注入攻击向量,监测DOM函数状态以及页面状态;设定攻击向量的预期执行结果为弹窗操作,实时查询页面状态,以检验攻击向量是否执行成功;对于脚本分析中获取的元素,提取outerHTML属性,检验脚本分析中获取的元素是否存在攻击向量的部分内容;基于检验攻击向量是否执行成功和检验脚本分析中获取的元素是否存在攻击向量的部分内容的检测结果,确定输入元素是否为源码跨站脚本漏洞点。
第三方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的源码跨站脚本漏洞检测程序,以实现上述第一方面中所述的源码跨站脚本漏洞检测方法。
第四方面,本发明实施例提供一种存储介质,包括:所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中所述的源码跨站脚本漏洞检测方法。
本发明实施例提供的源码跨站脚本漏洞检测方案,通过反代码变形操作调整源码格式以提取源码内容;基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。由本方案,通过构建特征表达式和数据流分析实现静态漏洞检测,通过构建攻击向量动态模拟发掘源码注入点,动静结合提高源码跨站脚本漏洞检测准确率,准确定位并输出源码漏洞点。
附图说明
图1为本发明实施例提供的一种源码跨站脚本漏洞检测方法的流程示意图;
图2为本发明实施例提供的另一种源码跨站脚本漏洞检测方法的流程示意图;
图3为本发明实施例提供的一种变量转换流程图;
图4为本发明实施例提供的一种攻击向量接继关系树型图;
图5为本发明实施例提供的一种特征表达式应用模块示意图;
图6为本发明实施例提供的一种源码跨站脚本漏洞检测装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种源码跨站脚本漏洞检测方法的流程示意图,如图1所示,该方法具体包括:
S11、通过反代码变形操作调整源码格式以提取源码内容。
本发明实施例给出一种静态分析与动态测试结合的跨站脚本漏洞检测方法,通过设定的变量转换原则提高注入点数据流向分析能力,通过构建类攻击向量特征表达式实现静态分析漏洞检测,动静结合提高漏洞检测准确率,并且提高漏洞识别类型为跨站脚本的三种类型漏洞。
具体的,结合图2,本发明实施例可以通过自动化测试工具selenium获取网页源码,根据设定的一组处理变形与混淆内容的特征表达式结合python的字符串操作完成源码调整。预处理操作包括:①统一编码的大小写格式,消除字母大小写产生内容混淆;②特殊编码内容解码,涉及Unicode编码、URL编码、特殊符号解码,其中实体编码予以保留;③清除源码内闭合完整的注释内容;④替换连续空格为单个空格,同时在每行代码被提取分析时,消除行起始处的制表符。⑤清除标签内的特殊符号如‘\’;⑥清除标签嵌套的嵌套内容。
进一步的,将调整完成的源码分三类内容进行存储:脚本、HTML内容、网页输入元素。具体的,存取页面JavaScript脚本;存取input标签与文本域textarea标签作为页面输入元素,存至输入点矩阵;敏感标签,例如["a","img","form","body","iframe","link","table","div","object","svg"]等,将标签的详细内容按照属性、事件、样式存储至标签矩阵。其中,输入点矩阵与标签矩阵的格式如表1所示:
Figure BDA0003999041350000071
表1
S12、基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具。
构建特征表达式作为检测工具以及内容分析工具。其构建原则为:
定义1元字符,表示待识别的各种字符,具体有{\d表示数字,\w表示字母,\s表示空格,^代表行开头,$代表行结尾,[]代表集合,()代表子表达式}。
定义2控制次数字符,限定字符出现的次数,具体有{+次数大于等于1次、?次数为0次或1次、*次数大于等于0次、{m,n}次数为m次到n此、{m,}次数大于等于m次、{m}次数为m次}。
定义3内容字符,是待识别内容的关键特征,一般以字符或字词的形式出现,如匹配script标签src属性。
优先的,为每一个待分析网页标签定义标识,其由标签的id、class、name属性内容拼接而成,构建形式为{id-class-name}。
优先的,本发明实施例中使用矩阵存储多类信息,给出所用几类矩阵的定义,其中所有含有“是否”的列维度,其取值集合为{true,false}。
输入点矩阵,用于存储网页输入元素的详细内容,列维度为{标签名,输入元素标识、输出点标识,是否为漏洞点}。
标签矩阵,存储网页待分析标签,列维度为{标签名,id-class-name,标签属性、标签事件、标签样式、是否具有恶性内容}。
优先的,给出源码变形特征,变形特征指的是对于源码的一类混淆手段,所用之处在于攻击向量的变形以提高攻击能力以及源码处理时格式调整的参考,具体为:
1)大小写混淆,因HTML不区分大小写字母特性,采用大小写混淆绕过检测机制。
2)字符编码,有Unicode编码,URL编码,Base64编码实现编码中的字符替换。
3)空白字符替换。标签的内容在一定情况中可使用空白字符进行替换:空格%20、制表符%09、换行符%0a和回车符%0d。
4)支架更换,将JavaScript代码中函数的()括号替换为'或”。
5)弹窗函数内容调整,通过函数进行变形,躲避对于函数作为关键字的漏洞检测手段,如alert(1)转换为top['ale'+'rt'](1)的拼接旁路方式。
6)标记嵌套,向标签内嵌入同种标签,如<scri<script>pt>。
7)添加特殊符号,紊乱检测机制的匹配逻辑,逃过关键字的检索;如斜杠/。
进一步的,指定6类基元素为攻击向量payload的基本内容,依据基元素之间的关系设定接继关系,并在符合接继关系下组合基元素构建payload:元素的接继关系如图4的攻击向量接继关系树型图所示。
其中,6类基元素:{敏感标签ET、敏感属性EA、敏感事件EE、网页伪协议操作ED、敏感脚本ES、闭合字符EC};攻击向量的构建是通过编写HTML文件,内容为所有易受攻击的敏感标签。使用selenium加载html文件,向标签内添加敏感属性与事件,添加完成后使用selenium及时获取不含变形特征的标签内容作为攻击向量。再结合字符串函数向攻击向量内添加变形特征,提供攻击向量的攻击能力。
构建一组恶性内容特征表达式,旨在发掘恶性脚本的内容;特征表达式语法格式为:{元字符+次数字符}……{元字符+次数字符}{内容字符}……{元字符+次数字符};特征表达式构建完成后将会是本专利所提方法内重要的辅助工具,其使用范围如图5所示。而在恶性内容特征表达式构建中内容字符,是待识别内容的关键特征,一般以字符或字词的形式出现,因此构建基础与payload具有一致性,取用其中{敏感属性EA、敏感事件EE}作为定位元素,{网页伪协议操作ED、敏感脚本ES、闭合字符EC}作为本专利特征表达式语法中的内容字符。
S13、采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息。
S14、基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。
结合静态分析技术与动态测试技术实现源码跨站脚本漏洞检测,具体的,静态分析技术包括两方面内容:特征表达式检测HTML标签、静态网页脚本安全性。
其中,HTML标签的分析,即为对于标签矩阵内所有属性、事件、CSS样式内容使用特征表达式进行恶性检测,若一个标签中{属性、事件、样式}有一者存在恶性内容,则此标签的即为漏洞点,将输出其标识以及outerHTML属性,作为漏洞点发掘的结果并可以使用标识定位。
对于脚本使用设计的一种“变量转换”方法完成分析。结合图3此方法的内容具体为:
S1:采用特征表达式获取脚本内所有声明变量,变量的值以<脚本内位置,值>的键值对形式存储。其中特殊情况,变量值为DOM函数从网页标签中提取的某项内容,即使用document.getElementById或QuerySelector此类函数提取标签属性或事件,则直接将完整的函数作为变量值进行存储。
S2:探测脚本内S1中所有变量的位置,依据其每个值所在的位置为界定,将该段脚本内的此变量转换为其值;替换位置包括赋值操作与作为函数的参数。
S3:对S2内所有的变量值进行类型判别和长度计算,将变量值、变量值类别、长度以DataFrame格式存储构建变量矩阵。
在S2完成后,设定以下几类sink内容并开展分析:
①其中设定敏感内置函数如["eval","expression","escape","setTimeout"]是源码内的威胁点sink,则使用恶性内容特征表达式检测其参数内容安全性,此时参数内容已经被S2替换为值;检测后若存在恶性内容则将输出此函数及其参数。
②采用特征表达式,基于URL构建语法:{协议://路径?参数&参数}定位脚本中的拼接URL操作并定位存储此字符串的变量,使用恶性内容特征表达式检测其值内是否含有恶意内容,特别是URL的参数部分。
③对于完成S2变量值替换后的语句,若语句为赋值语句并且等号两侧结尾为DOM函数下的赋值操作,如document.getElementById(‘A)=docuemt.getElement.getElementById(‘B’),则抽取被赋值一方使用的id或class或name或tagname,将其传递至动态测试中用作为payload注入效果检验的分析内容。
动态测试通过预设工具加载页面,向输入元素注入攻击向量payload,并监测DOM状态以及页面状态,预设工具可以是自动化工具selenium。设定payload预期执行结果为弹窗操作,因此selenium将监测alert对象的值来实时查询页面状态,已检验攻击向量是否执行成功;同时对于脚本分析中获取的元素,提取其outerHTML属性,查验其中是否存在payload的部分内容。根据以上两者的检测结果,决定输入元素是否为源码跨站脚本漏洞点。
由于静态分析与动态分析所针对的是不同的攻击角度所开展的漏洞攻击分析,因此两种方法中所检测出的恶性点——即源码内恶性内容存在位置与网站注入点将皆作为源码漏洞输出。并且由于恶性内容点为标签属性,注入点为页面输入元素,因此两种间冲突的可能极低,遂无需制定用于处理输出内容冲突时的核定规则。
本发明给出的一种源码跨站脚本漏洞检测方法,能够定位并输出源码漏洞点,其中设定的变量转换方法相较于构建数据流图并遍历的获取数据流方法,可以更快进行输入元素的数据流获取;基于源码恶性内容分析所设定的特征表达式可视为黑名单技术的简化,并且对比之下在分析效率方面有较大提升,提高静态分析检测能力,降低静态分析的误报率;采用动态测试与静态分析两者结合的方式,更好的针对不同的攻击角度实现了漏洞检测,提高漏洞点检测准确率;详细描述攻击向量构建逻辑更好的生成了有效的攻击向量。因此结合静态分析与动态测试更有效的实现了漏洞检测,使得源码有了一定的安全防护。
图6示出了本发明实施例的一种源码跨站脚本漏洞检测装置的结构示意图。如图6所示,该装置包括:
提取模块601,用于通过反代码变形操作调整源码格式以提取源码内容。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
构建模块602,用于基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
监测模块603,用于采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
检测模块604,用于基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
本发明实施例提供的源码跨站脚本漏洞检测装置,用于执行上述实施例提供的无源码跨站脚本漏洞检测方法,其实现方式与原理相同,详细内容参见上述方法实施例的相关描述,不再赘述。
图7示出了本发明实施例的一种电子设备,如图7所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中所提供方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (15)

1.一种源码跨站脚本漏洞检测方法,其特征在于,包括:
通过反代码变形操作调整源码格式以提取源码内容;
基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;
采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;
基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。
2.根据权利要求1所述的方法,其特征在于,所述基于提取到的源码内容采用预设构建规则构建特征表达式构建静态检测分析工具,包括:
基于预设构建规则,将提取到的源码内容采用静态分析技术构建特征表达式,其中,所述构建规则包括元字符构建规则、控制次数字符构建规则和内容字符构建规则;
结合源码数据流分析检测识别源码敏感内容,挖掘源码静态漏洞点,其中,所述源码数据流分析包括生成变量矩阵、输入点矩阵和标签矩阵。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
构建攻击向量进行输入点动态验证测试,其中,所述攻击向量在操作符号的控制下组合各类基元素标签构建而成。
4.根据权利要求2所述的方法,其特征在于,所述生成变量矩阵,包括:
S1:采用特征表达式获取脚本内全部声明变量,并以键值对形式存储;
S2:探测脚本内S1中全部声明变量的位置信息,基于所述位置信息将对应脚本内的变量转换为对应的变量值;
S3:对S2内所有的变量值进行类型判别和长度计算,将变量值、变量值类别、长度以DataFrame格式存储构建变量矩阵。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
设定敏感内置函数,使用恶性内容的特征表达式检测参数内容的安全性,若存在恶性内容则输出对应的敏感内置函数及其参数;
采用特征表达式,基于URL构建语法定位脚本中的拼接URL操作,并定位存储对应字符串的变量,检测变量值内是否含有恶意内容;
对于完成S2变量值替换后的语句,若语句为赋值语句并且等号两侧结尾为DOM函数下的赋值操作,则抽取被赋值一方使用的id或class或name或tagname,将抽取到的信息传递至动态测试中用作payload注入效果检验的分析内容。
6.根据权利要求4所述的方法,其特征在于,所述S1:采用特征表达式获取脚本内全部声明变量,并以键值对形式存储,还包括:
若变量值为DOM函数从网页标签中提取的内容,则直接将完整的函数作为变量值进行存储。
7.根据权利要求2-3任一所述的方法,其特征在于,所述采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息,包括:
加载页面,并向输入元素注入攻击向量,监测DOM函数状态以及页面状态;
设定攻击向量的预期执行结果为弹窗操作,实时查询页面状态,以检验攻击向量是否执行成功;
对于脚本分析中获取的元素,提取outerHTML属性,检验脚本分析中获取的元素是否存在攻击向量的部分内容;
基于检验攻击向量是否执行成功和检验脚本分析中获取的元素是否存在攻击向量的部分内容的检测结果,确定输入元素是否为源码跨站脚本漏洞点。
8.一种源码跨站脚本漏洞检测装置,其特征在于,包括:
提取模块,用于通过反代码变形操作调整源码格式以提取源码内容;
构建模块,用于基于提取到的源码内容采用预设构建规则构建特征表达式以及预设的变量转换方法构建静态检测分析工具;
监测模块,用于采用动态测试技术通过预设工具注入攻击向量监测页面状态,得到页面状态监测信息;
检测模块,用于基于所述静态检测分析工具和所述页面状态监测信息检测源码跨站脚本漏洞。
9.根据权利要求8所述的装置,其特征在于,所述构建模块,还用于基于预设构建规则,将提取到的源码内容采用静态分析技术构建特征表达式,其中,所述构建规则包括元字符构建规则、控制次数字符构建规则和内容字符构建规则;结合源码数据流分析检测识别源码敏感内容,挖掘源码静态漏洞点,其中,所述源码数据流分析包括生成变量矩阵、输入点矩阵和标签矩阵。
10.根据权利要求8所述的装置,其特征在于,所述构建模块,还用于构建攻击向量进行输入点动态验证测试,其中,所述攻击向量在操作符号的控制下组合各类基元素标签构建而成;S1:采用特征表达式获取脚本内全部声明变量,并以键值对形式存储;S2:探测脚本内S1中全部声明变量的位置信息,基于所述位置信息将对应脚本内的变量转换为对应的变量值;S3:对S2内所有的变量值进行类型判别和长度计算,将变量值、变量值类别、长度以DataFrame格式存储构建变量矩阵。
11.根据权利要求10所述的装置,其特征在于,所述检测模块,还用于设定敏感内置函数,使用恶性内容的特征表达式检测参数内容的安全性,若存在恶性内容则输出对应的敏感内置函数及其参数;采用特征表达式,基于URL构建语法定位脚本中的拼接URL操作,并定位存储对应字符串的变量,检测变量值内是否含有恶意内容;对于完成S2变量值替换后的语句,若语句为赋值语句并且等号两侧结尾为DOM函数下的赋值操作,则抽取被赋值一方使用的id或class或name或tagname,将抽取到的信息传递至动态测试中用作payload注入效果检验的分析内容。
12.根据权利要求8所述的装置,其特征在于,所述监测模块,还用于加载页面,并向输入元素注入攻击向量,监测DOM函数状态以及页面状态;设定攻击向量的预期执行结果为弹窗操作,实时查询页面状态,以检验攻击向量是否执行成功;对于脚本分析中获取的元素,提取outerHTML属性,检验脚本分析中获取的元素是否存在攻击向量的部分内容。
13.根据权利要求11所述的装置,其特征在于,所述检测模块,还用于基于检验攻击向量是否执行成功和检验脚本分析中获取的元素是否存在攻击向量的部分内容的检测结果,确定输入元素是否为源码跨站脚本漏洞点。
14.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的源码跨站脚本漏洞检测程序,以实现权利要求1~7中任一项所述的源码跨站脚本漏洞检测方法。
15.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的源码跨站脚本漏洞检测方法。
CN202211636143.2A 2022-12-14 2022-12-14 源码跨站脚本漏洞检测方法、装置、电子设备及存储介质 Pending CN115828265A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211636143.2A CN115828265A (zh) 2022-12-14 2022-12-14 源码跨站脚本漏洞检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211636143.2A CN115828265A (zh) 2022-12-14 2022-12-14 源码跨站脚本漏洞检测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115828265A true CN115828265A (zh) 2023-03-21

Family

ID=85516815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211636143.2A Pending CN115828265A (zh) 2022-12-14 2022-12-14 源码跨站脚本漏洞检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115828265A (zh)

Similar Documents

Publication Publication Date Title
CN102542201B (zh) 一种网页中恶意代码的检测方法及系统
Gupta et al. Enhancing the browser-side context-aware sanitization of suspicious HTML5 code for halting the DOM-based XSS vulnerabilities in cloud
US9712560B2 (en) Web page and web browser protection against malicious injections
US11716348B2 (en) Malicious script detection
US9509714B2 (en) Web page and web browser protection against malicious injections
US10567407B2 (en) Method and system for detecting malicious web addresses
Gupta et al. Hunting for DOM-Based XSS vulnerabilities in mobile cloud-based online social network
US8646088B2 (en) Runtime enforcement of security checks
CN101751530B (zh) 检测漏洞攻击行为的方法及设备
CN103559235A (zh) 一种在线社交网络恶意网页检测识别方法
CN101820419A (zh) 一种挂马网页中网页木马挂接点自动定位方法
CN111835777B (zh) 一种异常流量检测方法、装置、设备及介质
CN108664791B (zh) 一种超文本预处理器代码中的网页后门检测方法及装置
CN112637361A (zh) 一种页面代理方法、装置、电子设备及存储介质
Xiao et al. Detection and prevention of code injection attacks on HTML5-based apps
CN112016096A (zh) 一种xss漏洞的审计方法、装置
CN112148956A (zh) 一种基于机器学习的暗网威胁情报挖掘系统和方法
Leithner et al. Hydra: Feedback-driven black-box exploitation of injection vulnerabilities
CN108830082B (zh) 一种基于输出点位置的xss漏洞检测参数自动选取方法
CN113067792A (zh) 一种xss攻击识别方法、装置、设备及介质
Das et al. Detection of cross-site scripting attack under multiple scenarios
CN114626061A (zh) 网页木马检测的方法、装置、电子设备及介质
CN109684844B (zh) 一种webshell检测方法、装置以及计算设备、计算机可读存储介质
CN117040804A (zh) 网站的网络攻击检测方法、装置、设备、介质和程序产品
CN112287349A (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