php序列化函数漏洞----unserialize()函数
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,unserialize()函数概念unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array
千家信息网最后更新 2025年02月01日php序列化函数漏洞----unserialize()函数
unserialize()函数概念
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。与之相对的函数serialize()序列化函数。
我们看一个题目
题目:天网管理系统,链接: http://ctf5.shiyanbar.com/10/web1/
1、进入题目查看网页源码
这行提示比较霸气,直接让你判断你的用户名的md5值是不是等于0,这里利用php处理MD5哈希缺陷,遇到哈希值是0e开头的字符串被当做0,QNKCDZO就是这样的字符串。推荐网站;https://www.cnblogs.com/Primzahl/p/6018158.html.
2、输入这个特殊字符串,查看一下
3、给了一个路径,查看一下子
这里又得到一个源码,里面关键的部分说的就是unserialize()函数。从源码中很明显可以看出,post传输的username值应该是一个数组。这样才能分别得出user,pass的值。
我们直接给出数组是不行的,因为unserialize()函数需要处理序列化之后的字符串,然后将其反序列化为php的值。所以我们输入的值应该是经过序列化函数serialize()处理后的数组,然后交由unserialize()函数去处理。
编写序列化字符串脚本:
$a=array("user" => true,"pass" => true) //或false
$b=serialize($a)
echo $b
?>
这里要记着数组的值要根据提示用布尔值,不然不会得到flag
最后将得到的结果填入文本框便可以拿到flag。
推荐一篇文章:https://blog.csdn.net/cnbird2008/article/details/8664026
函数
序列
字符
字符串
数组
处理
源码
题目
就是
哈希
推荐
提示
输入
不行
明显
特殊
霸气
关键
变量
天网
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
建宏科技软件开发
计算机网络安全能干什么
软件开发项目流程管理工具
网络安全小学绘画图片
手游传奇服务器怎么搭建
dell服务器管理网配置
信息网络技术理论题库
avx指令 对软件开发
cs go 官方服务器
无忧在线代理服务器
bmf数据库还原
建立网络安全专家智库
东莞微商软件开发报价
相机显示无法连接到服务器
潍坊软件开发有哪些公司
服务器开小差了
初级手机软件开发
服务器做raid教程
创造与魔法换服务器东西会没吗
浦东新区软件开发技术咨询流程
辽宁专升本网络技术专业
数据库文件分类及特点
传统数据库运算
数据库的数据表是几维的
服务器 单核 双核
广州小程序软件开发解决方案
网络技术包含了哪些技术
软件开发者不兼容
文件下载服务器如何缓存加速
数据库语句总结