一种PHP反序列化漏洞利用链检测方法及装置与流程

文档序号:34027817发布日期:2023-05-05 09:56阅读:31来源:国知局
一种PHP反序列化漏洞利用链检测方法及装置与流程

本发明涉及软件检测,特别涉及一种php反序列化漏洞利用链检测方法及装置。


背景技术:

1、目前,反序列化漏洞的利用链的检测较少,现有的一种反序列化漏洞利用链检测方法(如cn113010899b)是通过保存执行php文件的源代码信息,然后预定义一系列的规则进行检测,还需要保存部分源代码。这种方式所占的存储空间多,对文件执行的效率影响较大。

2、本发明只需要提前对php的风险函数hook,如果未执行到这些风险函数,则不会进行检测,对执行效率的影响较小,且具有较高的检测率和较低的误报率。


技术实现思路

1、本发明实施例的目的是提供一种php反序列化漏洞利用链检测方法及装置,通过在反序列化函数执行后,在风险函数执行时检测风险函数的参数,当风险函数参数位于反序列化函数外部参数列表中时,如运行堆栈中有已运行的魔法函数,则确定反序列化过程中存在风险漏洞,极大地提高检测准确率,误报率极低。

2、为解决上述技术问题,本发明实施例的第一方面提供了一种php反序列化漏洞利用链检测方法,包括如下步骤:

3、在反序列化函数执行后,在风险函数执行时获取所述风险函数的参数;

4、判断所述风险函数的参数是否为反序列化函数外部参数列表中已存储的参数;

5、如是,则判断当前运行堆栈中是否包含魔法函数;

6、当所述运行堆栈包含所述魔法函数,则判定所述魔法函数调用了所述风险函数,且所述风险函数的参数为外部请求参数,所述风险由反序列化漏洞触发。

7、进一步地,所述获取风险函数的参数之前,还包括:

8、获取所述反序列化函数的参数;

9、判断所述反序列化函数的参数是否为所述外部请求参数;

10、如是,则将所述反序列化函数的参数存储至所述反序列化函数外部参数列表。

11、进一步地,所述获取所述反序列化函数的参数之前,还包括:

12、对所述反序列化函数和所述风险函数执行hook操作。

13、进一步地,所述风险函数所属的风险类型包括:命令执行、sql注入、代码执行、执行可疑文件、敏感文件访问或服务器端请求伪造风险。

14、相应地,本发明实施例的第二方面提供了一种php反序列化漏洞利用链检测装置,利用上述php反序列化漏洞利用链检测方法进行漏洞检测,包括:

15、第一参数获取模块,其用于在反序列化函数执行后,在风险函数执行时获取所述风险函数的参数;

16、第一判断模块,其用于判断所述风险函数的参数是否为反序列化函数外部参数列表中已存储的参数;

17、第二判断模块,其用于在所述风险函数的参数为所述反序列化函数外部参数列表中已存储的参数时,判断当前运行堆栈中是否包含魔法函数;

18、漏洞判定模块,其用于当所述运行堆栈包含所述魔法函数,则判定所述魔法函数调用了所述风险函数,且所述风险函数的参数为外部请求参数,所述风险由反序列化漏洞触发。

19、进一步地,所述php反序列化漏洞利用链检测装置还包括:

20、第二参数获取模块,其用于获取所述反序列化函数的参数;

21、第三判断模块,其用于判断所述反序列化函数的参数是否为所述外部请求参数;

22、参数处理模块,其用于在所述反序列化函数的参数为所述外部请求参数时,将所述反序列化函数的参数存储至所述反序列化函数外部参数列表。

23、进一步地,所述php反序列化漏洞利用链检测装置还包括:

24、hook执行模块,其用于对所述反序列化函数和所述风险函数执行hook操作。

25、进一步地,所述风险函数所属的风险类型包括:命令执行、sql注入、代码执行、执行可疑文件、敏感文件访问或服务器端请求伪造风险。

26、相应地,本发明实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行上述php反序列化漏洞利用链检测方法。

27、相应地,本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述php反序列化漏洞利用链检测方法。

28、本发明实施例的上述技术方案具有如下有益的技术效果:

29、通过在反序列化函数执行后,获取并保存外部请求的反序列化参数到反序列化函数外部参数列表,在风险函数执行时检测风险函数的参数,当风险函数参数位于反序列化函数外部参数列表中时,如运行堆栈中有已运行的魔法函数,则确定反序列化过程中存在风险漏洞,极大地提高检测准确率,误报率极低。



技术特征:

1.一种php反序列化漏洞利用链检测方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的php反序列化漏洞利用链检测方法,其特征在于,所述获取风险函数的参数之前,还包括:

3.根据权利要求2所述的php反序列化漏洞利用链检测方法,其特征在于,所述获取所述反序列化函数的参数之前,还包括:

4.根据权利要求1-3任一所述的php反序列化漏洞利用链检测方法,其特征在于,

5.一种php反序列化漏洞利用链检测装置,其特征在于,利用如权利要求1-4任一所述的php反序列化漏洞利用链检测方法进行漏洞检测,包括:

6.根据权利要求5所述的php反序列化漏洞利用链检测装置,其特征在于,还包括:

7.根据权利要求6所述的php反序列化漏洞利用链检测装置,其特征在于,还包括:

8.根据权利要求5-7任一所述的php反序列化漏洞利用链检测装置,其特征在于,

9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行如权利要求1-4任一所述的php反序列化漏洞利用链检测方法。

10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-4任一所述的php反序列化漏洞利用链检测方法。


技术总结
本发明公开了一种PHP反序列化漏洞利用链检测方法及装置,其中方法包括如下步骤:在反序列化函数执行后,在风险函数执行时获取其参数;判断风险函数的参数是否为反序列化函数外部参数列表中已存储的参数;如是,则判断当前运行堆栈中是否包含魔法函数;当运行堆栈包含魔法函数,则判定魔法函数调用了风险函数,且风险函数的参数为外部请求参数,风险由反序列化漏洞触发。通过在反序列化函数执行后检测风险函数的参数,当风险函数参数位于反序列化函数外部参数列表中时,如运行堆栈中有已运行的魔法函数,则确定反序列化过程中存在风险漏洞,极大地提高检测准确率,误报率极低。

技术研发人员:姜向前,杨钰卉,姚纪卫
受保护的技术使用者:安芯网盾(北京)科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1