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