【技术实现步骤摘要】
一种代码注入检测方法、装置、电子设备及可读存储介质
[0001]本申请涉及计算机
,尤其是涉及一种代码注入检测方法、装置、电子设备及可读存储介质。
技术介绍
[0002]PHP代码注入属于RCE(远程代码执行)攻击的一种,是指应用程序过滤不严,攻击者可以通过用户端将代码注入到服务器进行远程执行,实现对服务器的远程控制。因此,为了防止攻击者通过用户端对服务器进行访问时将PHP代码注入到服务器中,服务器需要对用户端访问服务器时产生的HTTP流量进行代码注入检测,判断HTTP流量中是否存在代码注入。
[0003]现有技术中,通常使用特征串检测和正则表达式检测两种方式进行代码注入检测,其中,特征串检测是指检测HTTP流量中是否存在特定的字符串,例如:典型的PHP代码攻击中包括的函数。正则表达式变化是指在特征串的基础上加上通配符、或者改变特征串的顺序、在特征串中间加入注释等干扰性信息(但是干扰性信息对代码执行没有影响的内容)。通过正则表达式检测可以将正则表达式变化后的特征串检测出来。
[0004]但是特征串检测和正则表达式检测方式只能检测已知的PHP代码注入攻击,对于变形的PHP代码(与正则表达式变化不同)注入则无法检测出来(其中,变形的PHP代码是指将没有改变该代码的功能作用,但是改变了该PHP代码的逻辑结构等)。因此,现有技术中的正则表达式检测方式存在对变形的PHP代码注入检测易绕过的问题,会导致服务器上的数据安全性较低。
技术实现思路
[0005]有鉴于此,本申请的目的在于提供一种代 ...
【技术保护点】
【技术特征摘要】
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代码语义转义,生成所述待检测字符串对应的目标特征串,包括:识别所述待检测字符串中的目标空格;所述目标空格包括单独的一个空格或者连续的多个空格;根据所述待检测字符串中的目标空格,对...
【专利技术属性】
技术研发人员:陈勇,马维士,刘加瑞,
申请(专利权)人:安徽华云安科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。