齐鲁师范学院网络安全社团2025级第二次校赛 WriteUP

这一次比赛禁止AI 不能用AI的我根本不会写脚本 Re和Pwn直接寄了 剩下的侥幸ak

image-20260412193208690

Crypto

Affine

出题人: Camille 难度: 简单


银河中的智慧会帮助你揭开谜底

题目是说的银河 所以是银河字母

image-20260412133704956

将密文解码出来大概是以下的形式

1
2
3
4
5
H
URX
REH
SHN
IHXURI

根据题目提示为Affine密码 将base64解密后得到a和b的值

image-20260412133833188

再用仿射密码解密一下

image-20260412133853308

拼接flag可以得到QLNUCTF{a_new_era_has_dawned}

Easy_Rsa

出题人: Camille 难度: 简单


不多说

这道题是RSA共模攻击

1
2
3
4
5
6
7
8
9
10
11
12
from Crypto.Util.number import long_to_bytes
from gmpy2 import gmpy2

n = 105264465119825392930270074121640512414080601856155883822015757324007538189539606533449835377680756134498279412425583951618073447773969564119838117072693083034020041459171374649087604252784561860797248953931468997653718991863888529042762228719908173798022752915524761995087438171110499736790192741730648757013
e1 = 65537
e2 = 17
c1 = 7762426765215220050207308755375681429229991310010906243953366767274715308639585428003818300312778958077467852911313292748305091182273555515598092752323863574075057919591320510654361867634028916993895458994735520673276142745120689132573003445818645866828964106930924421070592373074717182262964215821968638132
c2 = 43966542847334009211385474563372505170806758926763748156802941100166035733810602321346239377467987870181474256465226598440604570526109882567946520089474248025554071431488069180252144800218664214625618038215721088549654598902771082779678313860579377658178077667829707876096837137917598108366277814449122513223

r,s1,s2 = gmpy2.gcdext(e1, e2)
m = (pow(c1,s1,n)*pow(c2,s2,n)) % n
print(long_to_bytes(m))

getflag

image-20260412142437839

真理

出题人: Camille 难度: 简单


永恒不变的唯一真理

打开是核心价值观编码 解码即可 然后从中找到对的格式 getflag

image-20260412134702553

Misc

眼睛快瞎了

出题人: Duktig | 难度: 简单


这个 GIF 闪得太快了,我根本看不清上面写了什么!

这个题目提示的很到位 其实就是拆分gif

image-20260412134118848

然后拼接一下

image-20260412134134097

QLNUCTF{GIF_Frames_S0_Many}

超标的体重

出题人: Duktig 难度: 简单


这张图片看起来很普通,但它的“体重”似乎超标了。里面是不是藏了什么东西?

用zip打开图片 发现里面有个flag.txt 解压打开即可 getflag

image-20260412134854322

伪装者的套娃

出题人: Duktig | 难度: 中等


这是一个被多重加密的压缩包,已知其中一个文件 readme.txt 的内容是全校学生都知道的校训。

这个是一个已知道明文攻击题 用bkcrack做 先解出来keys 然后我强制改了一下密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PS C:\Users\Ambit\Desktop\bkcrack-1.8.1-win64> .\bkcrack.exe -C .\flag.zip -c readme.txt -p readme.txt -P readme.zip
bkcrack 1.8.1 - 2025-10-25
[16:36:42] Z reduction using 32 bytes of known plaintext
100.0 % (32 / 32)
[16:36:43] Attack on 257437 Z values at index 6
Keys: 48ad034b 76220f1e eeef6a2c
2.5 % (6517 / 257437)
Found a solution. Stopping.
You may resume the attack with the option: --continue-attack 6517
[16:36:46] Keys
48ad034b 76220f1e eeef6a2c

PS C:\Users\Ambit\Desktop\bkcrack-1.8.1-win64> ./bkcrack -C .\flag.zip -k 48ad034b 76220f1e eeef6a2c -U new.zip easypassword
bkcrack 1.8.1 - 2025-10-25
[16:37:40] Writing unlocked archive new.zip with password "easypassword"
100.0 % (2 / 2)
Wrote unlocked archive.

解压后得到flag

image-20260412164112066

Web

game

出题人: Ord1nary 难度: 简单


比赛打累了玩会小游戏放松一下吧

这个一开始是个登录框 yakit用top10000发包就行

image-20260412140223825

用admin 密码abc123登录 直接在前端就能看见flag 没有后端校验

image-20260412140254042

ez_unserialize

出题人: Ord1nary 难度: 简单


了解一下反序列化

之前真的不会 全是ai的 这一次手敲明白原理了

1
2
3
4
5
6
7
8
9
10
<?php
class SimpleAuth{
public $user = 'admin';
public $pass = 'thi5_1s_s3cr3t';
public function __wakeup(){
}
}
$a = new SimpleAuth();
print(serialize($a));
?>

执行php 然后传参即可

image-20260412144558252

md5开胃菜

出题人: Ord1nary 难度: 中等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
error_reporting(0);
highlight_file(__file__);
include('next.php');
if (isset($_GET['md5_1']) && isset($_GET['md5_2'])) {
if ((string)$_GET['md5_1'] !== (string)$_GET['md5_2'] && md5($_GET['md5_1']) === md5($_GET['md5_2'])) {
if (isset($_POST['md5_3']) && md5($_POST['md5_3']) == '0') {
echo $next;
} else {
echo "你以为只是简单的md5吗";
}
} else {
echo "这都不会了?";
}
} else {
echo "md5起手试一下吧";
}

md5强比较 请求以下url 发送post md5_3=0e215962017

1
http://challenges.snige.cn:35798/?md5_1=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&md5_2=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

回显

image-20260412150232899

进入lv2.php

1
2
3
4
5
6
7
8
9
<?php
error_reporting(0);
highlight_file(__FILE__);
$shell = $_POST['shell'];
$cmd = $_GET['cmd'];
if(preg_match('/f|l|a|g|\*|\?/i',$cmd)){
die("Hacker!!!!!!!!");
}
eval($shell($cmd));

根据php传参 先用dir 列出目录 发现flag在根目录上

image-20260412153146580

使用通配符进行绕过 getflag

image-20260412161221886