php序列化函数漏洞----unserialize()函数
发表于:2024-10-11 作者:千家信息网编辑
千家信息网最后更新 2024年10月11日,unserialize()函数概念unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array
千家信息网最后更新 2024年10月11日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安全错误
数据库的锁怎样保障安全
数据库升级sql2017
信息网络安全的论文
万师傅网络技术有限公司
网络安全应急技术支撑队伍建设
有关网络安全毕业设计的题目
浙江pdu服务器专用电源哪家强
考勤机删除一个数据库
阿里云服务器哪里登录
工业网络安全CB认证证书
榆林自建存储服务器
鞍山羽彤网络技术
家庭购物软件开发
芝麻开门网络技术公司是什么公司
乐山市网络安全协会
无线网络技术试验代码
orm数据库
24盘位机架存储服务器
地质信息编码和数据库
英国警察使用警方数据库
志梦网络技术有限公司
中国高科技互联网发展史
私服米哈游服务器转向
和数据库交互的方式
军营网络安全周讨论
富国互联网科技
海康威视服务器管理密码
分布式数据库实验感想
初中生学软件开发行吗
网络安全整改建设项目招标
lol打开服务器自动掉线