这篇文章将为大家详细讲解有关PHP反序列化字符串逃逸的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
0周大福2016 piapiapia
- <李>
由于是代码审计,直接访问www.zip <代码> 代码>发现备份的源码,有一下文件,国旗就在<代码> config> 代码,因此读取即可
李>class.php ,,,,,,,,//主要有mysql类(mysql基本操作)和用户类(继承mysql实现功能点) config.php ,,,,,,,//环境配置 index.php ,,,,,,,,//登陆 profile.php ,,,,,,//查看自己上传的文件 register.php ,,,,,//注册 update.php ,,,,,,,//文件上传
<李> 然后分析代码,我喜欢通过功能点来分析,既然有注册,登陆,那么自然来看看<代码> SQL代码>咯,发现<代码> class.php> 代码中<代码> mysql> 代码类的滤过滤函数,过滤了增删查改,基本无望。
李> <李> 后面就看看文件上,传发现也对上传的文件参数进行了限制,但是发现对文件进行了序列化处理,那么肯定有反序列化,在<代码> profile.php> 代码中发现对上传的文件进行反序列化处理,并对文件<代码>概要美元[& # 39;照片# 39;]代码>进行读取。我们再回到文件上传点,发现<代码>概要美元[& # 39;照片# 39;]=& # 39;上传/& # 39;。md5($文件[& # 39;名字# 39;]);> 代码,但是我们无法获取加密后的文件值,后面有又看到文件上传是先序列化,再进过<代码>过滤器> 代码函数替换一些关键字,再反序列化,因此文件可能发生改变,因此可能有漏洞
李>
<李> 我们知道,PHP反序列化时以<代码>,代码>作为分隔点,<代码>}> 代码做为结束标志,根据长度来判断读取多少字符,我们无法控制<代码>概要美元[& # 39;照片# 39;]代码>但是可以控制<代码>昵称> 代码,而<代码>昵称> 代码又进行了长度限制,<代码> strlen 代码>函数却无法处理数组,因此用数组进行绕过即可我们在这里截断,那么后面的则会被废弃不再读取,而我们要构造的的有效载荷是,最开始的<代码>“;}> 代码是为了闭合前面数组<代码>昵称代码>的<代码>{> 代码,后面的<代码>;}> 代码是为了截断,让反序列化结束,不再读取后面的内容,当然这些都不能是字符哈。
李>
“;}:5:“photo"销售:10:“config.php"}
然后分析代码,我喜欢通过功能点来分析,既然有注册,登陆,那么自然来看看<代码> SQL代码>咯,发现<代码> class.php> 代码中<代码> mysql> 代码类的滤过滤函数,过滤了增删查改,基本无望。
李> <李>后面就看看文件上,传发现也对上传的文件参数进行了限制,但是发现对文件进行了序列化处理,那么肯定有反序列化,在<代码> profile.php> 代码中发现对上传的文件进行反序列化处理,并对文件<代码>概要美元[& # 39;照片# 39;]代码>进行读取。我们再回到文件上传点,发现<代码>概要美元[& # 39;照片# 39;]=& # 39;上传/& # 39;。md5($文件[& # 39;名字# 39;]);> 代码,但是我们无法获取加密后的文件值,后面有又看到文件上传是先序列化,再进过<代码>过滤器> 代码函数替换一些关键字,再反序列化,因此文件可能发生改变,因此可能有漏洞
李>- <李>
我们知道,PHP反序列化时以<代码>,代码>作为分隔点,<代码>}> 代码做为结束标志,根据长度来判断读取多少字符,我们无法控制<代码>概要美元[& # 39;照片# 39;]代码>但是可以控制<代码>昵称> 代码,而<代码>昵称> 代码又进行了长度限制,<代码> strlen 代码>函数却无法处理数组,因此用数组进行绕过即可我们在这里截断,那么后面的则会被废弃不再读取,而我们要构造的的有效载荷是,最开始的<代码>“;}> 代码是为了闭合前面数组<代码>昵称代码>的<代码>{> 代码,后面的<代码>;}> 代码是为了截断,让反序列化结束,不再读取后面的内容,当然这些都不能是字符哈。
李>“;}:5:“photo"销售:10:“config.php"}
这时构造了<代码>有效载荷> 代码,那么就要来计算溢出数量了,我们构造的负载长度为34岁,那么就要增加34个长度,由于<代码>,代码>变成<代码> 代码>黑客会增加一个长度,那么我们就需要34个<代码> 代码>,最终载荷
wherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewhere";}: 5:“photo"销售:10:“config.php"}