0x00介绍
本题运用到了PHP反序列化的知识点。那么什么是php反序列化呢?
其实这就是一种将各种数据转换成二进制流与二进制流的读取的概念。
想要更详细的了解序列化概念请点击
序列化的常见形式如下图:
0x01正文
打开地址,一个平平无奇的登入框。
我们尝试弱密码登入,发现按钮毫无动静,遂查看源代码,尝试寻找下一步进展。然后发现代码平平无奇仅剩admin.css一个链接,遂猜想是否存于其中。
果不其然:
接着得到下图:
<?php
error_reporting(0);
$KEY='ctf.bugku.com';
include_once("flag.php");
$cookie = $_COOKIE['BUGKU'];
if(isset($_GET['16040'])){ //isset函数检测输入值是否为空,若为空执行elseif
show_source(__FILE__);
}
elseif (unserialize($cookie) === "$KEY")//令cookie值反序列化后的值与ctf.bugku.com相同
{
echo "$flag"; //输出key
}
else {
?>
查阅代码,unserialize映入眼帘。这就是反序列化函数,说明这题考的是无类的php反序列化。(问:有类是什么样子? 答:代码中存在class)
接下来我们编写个序列化脚本
0x02结尾
接下来YanXia我可能要开始研究研究逆向了,WEB题会稍微降低频率。WEB交给队里另外一个师傅负责他的博客地址:大冰祸
我可以转载大佬的文章吗?
可。记得带上转载信息