BugKuCTF中套路满满的题--------flag.php

这道题目主要考察代码审计能力以及序列化和反序列化的知识

首先,什么是序列化,什么是反序列化?简而言之,序列化,就是把对象转化为字节,反序列化就是把字节转化为对象的过程

好了,开始实现解题吧。。。。

首先进入的界面是一个登陆框

BugKuCTF中套路满满的题--------flag.php_第1张图片

然而不论输入什么,提交上去都是没有反应,抓包查看了一下,发现数据包是一个’get‘,所提交的数据更本没有发出去,联想到提示hint,或许这是一个参数,在URL里给hint传参,即可得到一个界面:

http://123.206.87.240:8002/flagphp/?hint=0

 

BugKuCTF中套路满满的题--------flag.php_第2张图片

 

仔细阅读代码,发现一共有两个参数,一个是hint还有一个是Cookie里的参数ISecer,判断代码即可得知,首先,传入hint不能为空的时候才能显示这个界面的代码,其次是,如果太着急没仔细看的话,就会觉得传入的ISecer的值要与KEY的值相等,并且下面也给出了KEY的值,但是抓包修改参数ISecer的值为KEY的值,发现是没什么用的。再好好看ISecer的判断,就会发现ISecer被反序列化了,并且这里的KEY的值还没被定义  即为null, 即ISecer里的值为空,即使用语句为 s:0:""%3b(在这里%3b是分号     ;    的意思)

而再提交参数的时候,就不需要在传入hint的值了,如果传入进去,就会出现源码,那么flag就出不来了。。。。。

BugKuCTF中套路满满的题--------flag.php_第3张图片

 

 

 

 

 

你可能感兴趣的:(ctf)