(php反序列化漏洞通俗易懂)(php 面试反序列化漏洞)

文件包含漏洞

简介

程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,其中文件调用的过程一般被称为文件包含。

程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。

文件包含漏洞利用

执行PHP代码

1.利用php://input伪协议

php://input可以获取POST的数据流。当它与包含函数结合时,php://input流会被当作php文件执行。从而导致任意代码执行

2.利用data伪协议

data:// 同样类似与php://input,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行。从而导致 任意代码执行。

3.利用zip伪协议

zip://可以访问压缩包里面的文件。当它与包含函数结合时,zip://流会被当作php文件执行。从而实现任意代码执行。

4.利用远程文件包含

进行远程文件包含时,如果页面的内容为php代码,则会进行本地解析。

命令执行漏洞

简介

命令执行漏洞即用户可以直接在Web应用中执行系统命令, 从而获取敏感信息或者拿下shell权限。

代码执行漏洞

代码执行漏洞是由于WEB应用程序过滤不严谨,导致用户可以通过请求将代码注入到WEB应用进行执行。例如SQL注入,是将SQL语句注入到SQL中进行执行。而PHP代码执行漏洞是将代码注入到WEB服务器中,最终在WEB服务器中进行执行。

序列化与反序列化

序列化给我们传递对象提供了一种简单的方法。 将一个变量的数据"转换为"字符串,但并不是类型转换,目的是将该字符串存储在本地。相反的行为称为反序列化。序列化和反序列化的目的是使得程序间传输对象会更加方便。

PHP反序列化漏洞又叫PHP对象注入漏洞,反序列化的数据本质上来说是没有危害的,但是在反序列化参数可控时,可能会产生严重的安全威胁。当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者阿达斯加饿了所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(php反序列化漏洞通俗易懂)(php 面试反序列化漏洞)
本文链接:https://www.51qsb.cn/article/m89tm.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-06-12
下一篇2023-06-12

你可能还想知道

发表回复

登录后才能评论