一种代码注入检测方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:33446688 阅读:19 留言:0更新日期:2022-05-19 00:32
本申请提供了一种代码注入检测方法、装置、电子设备及可读存储介质,其中,该方法包括:获取用户端访问服务器时产生的HTTP流量中的待检测字符串;使用第一解码方式对待检测字符串进行解码得到第一字符串;使用第二解码方式对第一字符串进行解码得到第二字符串;第一解码方式对应的第一编码方式和第二解码方式对应的第二编码方式为绕过正则表达式检测的两种不同的编码方式;使用待检测字符串对应的第三解码方式对第二字符串进行解码得到第三字符串;对第三字符串进行PHP代码语义转义生成目标特征串;若PHP代码注入语义特征库中存在目标特征串,确定本次访问为PHP代码注入。通过该方法,有利于提高服务器上数据的安全性。有利于提高服务器上数据的安全性。有利于提高服务器上数据的安全性。

【技术实现步骤摘要】
一种代码注入检测方法、装置、电子设备及可读存储介质


[0001]本申请涉及计算机
,尤其是涉及一种代码注入检测方法、装置、电子设备及可读存储介质。

技术介绍

[0002]PHP代码注入属于RCE(远程代码执行)攻击的一种,是指应用程序过滤不严,攻击者可以通过用户端将代码注入到服务器进行远程执行,实现对服务器的远程控制。因此,为了防止攻击者通过用户端对服务器进行访问时将PHP代码注入到服务器中,服务器需要对用户端访问服务器时产生的HTTP流量进行代码注入检测,判断HTTP流量中是否存在代码注入。
[0003]现有技术中,通常使用特征串检测和正则表达式检测两种方式进行代码注入检测,其中,特征串检测是指检测HTTP流量中是否存在特定的字符串,例如:典型的PHP代码攻击中包括的函数。正则表达式变化是指在特征串的基础上加上通配符、或者改变特征串的顺序、在特征串中间加入注释等干扰性信息(但是干扰性信息对代码执行没有影响的内容)。通过正则表达式检测可以将正则表达式变化后的特征串检测出来。
[0004]但是特征串检测和正则表达式检测方式只能检测已知的PHP代码注入攻击,对于变形的PHP代码(与正则表达式变化不同)注入则无法检测出来(其中,变形的PHP代码是指将没有改变该代码的功能作用,但是改变了该PHP代码的逻辑结构等)。因此,现有技术中的正则表达式检测方式存在对变形的PHP代码注入检测易绕过的问题,会导致服务器上的数据安全性较低。

技术实现思路

[0005]有鉴于此,本申请的目的在于提供一种代码注入检测方法、装置、电子设备及可读存储介质,有利于在一定程度上解决对变形的PHP代码注入检测易绕过的问题,提高服务器上数据的安全性。
[0006]第一方面,本申请实施例提供了一种代码注入检测方法,包括:
[0007]获取用户端访问服务器时产生的HTTP流量中的指定字段,以将所述指定字段作为待检测字符串;
[0008]使用第一解码方式对所述待检测字符串进行第一解码,将第一解码结果作为第一字符串;所述第一解码方式对应的编码方式为第一编码方式;
[0009]使用第二解码方式对所述第一字符串进行第二解码,将第二解码结果作为第二字符串;其中,所述第二解码方式对应的编码方式为第二编码方式;所述第一编码方式和所述第二编码方式为绕过正则表达式检测的两种不同的编码方式;
[0010]使用所述待检测字符串对应的第三解码方式对所述第二字符串进行第三解码,得到第三字符串;
[0011]对所述第三字符串中的每个关键字进行PHP代码语义转义,生成所述第三字符串
对应的目标特征串;
[0012]在PHP代码注入语义特征库中进行查询,若所述PHP代码注入语义特征库中存在所述目标特征串,则确定本次访问为PHP代码注入。
[0013]结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述获取用户端访问服务器时产生的HTTP流量中的指定字段,以将所述指定字段作为待检测字符串之前,还包括:
[0014]获取所述用户端访问所述服务器时产生的所述HTTP流量;所述HTTP流量包括访问流量和响应流量;
[0015]使用HTTP协议对所述HTTP流量进行解析,得到目标字段;所述目标字段中包含多个所述指定字段。
[0016]结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述第一编码方式为base64编码,所述第一解码方式为base64解码,所述第二编码方式为16进制编码,所述第二解码方式为16进制解码;
[0017]或者,所述第一编码方式为16进制编码,所述第一解码方式为16进制解码,所述第二编码方式为base64编码,所述第二解码方式为base64解码。
[0018]结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述使用第一解码方式对所述待检测字符串进行第一解码,将第一解码结果作为第一字符串,包括:
[0019]使用第一解码方式对所述待检测字符串进行第一解码,判断所述第一解码是否解码成功;
[0020]若所述第一解码成功,则将所述第一解码后得到的第一解码结果作为所述第一字符串;
[0021]若所述第一解码失败,则将所述待检测字符串作为所述第一字符串。
[0022]结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述使用第二解码方式对所述第一字符串进行第二解码,将第二解码结果作为第二字符串,包括:
[0023]使用第二解码方式对所述第一字符串进行第二解码,判断所述第二解码是否解码成功;
[0024]若所述第二解码成功,则将第二解码后得到的第二解码结果作为所述第二字符串;
[0025]若所述第二解码失败,则将所述第一字符串作为所述第二字符串。
[0026]结合第一方面,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述对所述待检测字符串中的每个关键字进行PHP代码语义转义,生成所述待检测字符串对应的目标特征串,包括:
[0027]识别所述待检测字符串中的目标空格;所述目标空格包括单独的一个空格或者连续的多个空格;
[0028]根据所述待检测字符串中的目标空格,对所述待检测字符串进行分词处理,得到所述待检测字符串对应的关键字集合;
[0029]针对所述关键字集合中的每个关键字,对该关键字进行PHP代码语义转义,生成该
关键字对应的字符;
[0030]按照各个所述关键字在所述待检测字符串中的排列顺序,对所述字符进行拼接,生成所述目标特征串。
[0031]结合第一方面的第五种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,其中,所述关键字集合中包括:注释字符、PHP脚本关键字、PHP代码函数关键字、PHP代码函数中执行的特殊命令关键字、特殊字符关键字中的一种或多种;
[0032]所述针对所述关键字集合中的每个关键字,对该关键字进行PHP代码语义转义,生成该关键字对应的字符时,包括:
[0033]当所述关键字为所述注释字符时,将所述注释字符删除;
[0034]当所述关键字为所述PHP脚本关键字时,利用字典或者转义关系对所述PHP脚本关键字进行所述PHP代码语义转义,得到第一字符;
[0035]当所述关键字为所述PHP代码函数关键字时,利用所述字典或者所述转义关系对所述PHP代码函数关键字进行所述PHP代码语义转义,得到第二字符;
[0036]当所述关键字为所述PHP代码函数中执行的特殊命令关键字时,利用所述字典或者所述转义关系对所述PHP代码函数中执行的特殊命令关键字进行所述PHP代码语义转义,得到第三字符;
[0037]当所述关键字为所述特殊字符关键字时,利用所述字典或者所述转义关系对所述特殊字符关键字进行所述PHP代码语义转义,得到第四字符。
[0038]第二方面,本申请实施例还提供一种代码注入检测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码注入检测方法,其特征在于,包括:获取用户端访问服务器时产生的HTTP流量中的指定字段,以将所述指定字段作为待检测字符串;使用第一解码方式对所述待检测字符串进行第一解码,将第一解码结果作为第一字符串;所述第一解码方式对应的编码方式为第一编码方式;使用第二解码方式对所述第一字符串进行第二解码,将第二解码结果作为第二字符串;其中,所述第二解码方式对应的编码方式为第二编码方式;所述第一编码方式和所述第二编码方式为绕过正则表达式检测的两种不同的编码方式;使用所述待检测字符串对应的第三解码方式对所述第二字符串进行第三解码,得到第三字符串;对所述第三字符串中的每个关键字进行PHP代码语义转义,生成所述第三字符串对应的目标特征串;在PHP代码注入语义特征库中进行查询,若所述PHP代码注入语义特征库中存在所述目标特征串,则确定本次访问为PHP代码注入。2.根据权利要求1所述代码注入检测方法,其特征在于,所述获取用户端访问服务器时产生的HTTP流量中的指定字段,以将所述指定字段作为待检测字符串之前,还包括:获取所述用户端访问所述服务器时产生的所述HTTP流量;所述HTTP流量包括访问流量和响应流量;使用HTTP协议对所述HTTP流量进行解析,得到目标字段;所述目标字段中包含多个所述指定字段。3.根据权利要求1所述代码注入检测方法,其特征在于,所述第一编码方式为base64编码,所述第一解码方式为base64解码,所述第二编码方式为16进制编码,所述第二解码方式为16进制解码;或者,所述第一编码方式为16进制编码,所述第一解码方式为16进制解码,所述第二编码方式为base64编码,所述第二解码方式为base64解码。4.根据权利要求1所述代码注入检测方法,其特征在于,所述使用第一解码方式对所述待检测字符串进行第一解码,将第一解码结果作为第一字符串,包括:使用第一解码方式对所述待检测字符串进行第一解码,判断所述第一解码是否解码成功;若所述第一解码成功,则将所述第一解码后得到的第一解码结果作为所述第一字符串;若所述第一解码失败,则将所述待检测字符串作为所述第一字符串。5.根据权利要求1所述代码注入检测方法,其特征在于,所述使用第二解码方式对所述第一字符串进行第二解码,将第二解码结果作为第二字符串,包括:使用第二解码方式对所述第一字符串进行第二解码,判断所述第二解码是否解码成功;若所述第二解码成功,则将第二解码后得到的第二解码结果作为所述第二字符串;若所述第二解码失败,则将所述第一字符串作为所述第二字符串。
6.根据权利要求1所述代码注入检测方法,其特征在于,所述对所述待检测字符串中的每个关键字进行PHP代码语义转义,生成所述待检测字符串对应的目标特征串,包括:识别所述待检测字符串中的目标空格;所述目标空格包括单独的一个空格或者连续的多个空格;根据所述待检测字符串中的目标空格,对...

【专利技术属性】
技术研发人员:陈勇马维士刘加瑞
申请(专利权)人:安徽华云安科技有限公司
类型:发明
国别省市:

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

1