Ciallo~(∠・ω< )⌒★

  • 首页
  • 隐私政策
Shizuku's Blog
Ciallo~(∠・ω< )⌒★
  1. 首页
  2. Linux
  3. CTF
  4. 正文

御网杯2026 - Writeup

2026年6月4日 26点热度 0人点赞 0条评论

Web

WEB-Snake

游戏逻辑完全在前端 JS 运行,分数、速度、判断逻辑全部暴露在客户端,后端没有任何校验,前端改多少分,后端都认

属于典型的前端信任漏洞

所以我们直接通过bp抓包并修改score的值为300即可

发送到repeater,即可获取flag的值

WEb-PHP_Payment

本题是一道php反序列化的题目,通过代码审计可知,目标存在PromoManager类,析构函数在对象销毁时自动执行:

function __destruct() { $_SESSION['balance'] += intval($this->promo_credit); }

后端存在优惠券接口,接收coupon参数并反序列化,触发上述逻辑

同时,购买flag需要 99999 金币,初始金币仅 1,所以可通过构造恶意序列化对象增加金币

这里要注意,余额完全存储在 Session 中,必须使用当前已登录用户的 Session 才能修改余额,余额从 $\_SESSION\&lsqb;'balance'\&rsqb; 获取

了解这些之后,我们便可以构造poc并运行

把这个poc放到payload脚本里面

通过脚本获取session,方便一些

获取之后向PromoManager.\__destruct()投递payload:

然后进行攻击并获取flag

WEB-Enterprise_OA

本题是很典型的文件包含漏洞题,?module=public_notices.php 这种直接拼接文件名的方式,我们可以构造?module=../../etc/passwd 或 ?module=shell.php 读取敏感文件 / 上传木马

先尝试通过php伪协议读取源码

?module=php://filter/read=convert.base64-encode/resource=index.php

将该base64编码进行编译可得到源码

通过代码审计,了解到../会被消除,这里可以通过双写....//进行绕过

通过路径穿越成功访问到flag.txt文件

PWN

PWN-Authenticate

先checksec一下:

基本无保护,不影响下面栈溢出。、

看看IDA。

gets()函数显然栈溢出:

观察看到backdoor函数如图:

故使用栈后return_address跳backdoor即可解决。

初步尝试填充0x80+8到v1,然后接backdoor,但是失败,提示未对齐。

尝试rop一个ret

正好有个,加上,于是得到最后填充字节:

打一下,有shell,cat flag:

PWN-NoteService

包里面有个ELF和一个libc,考虑使用libc的方法:

看checksec:

栈不可执行,开NX了。

先IDA看反编译:

这个buf长64,读0x100显然溢出。

又看到secret_note有个shell,考虑跳过来。

直接elf.symbols['secret_note'],然后构造偏移。

上道题也ret对齐,这个也对齐一下节约时间,

远程得到flag:

PWN-Messageboard

包里面仅一个ELF

直接看IDA

依旧显然溢出,但是buf特大,考虑可能shellcode,再看看checksec。

无NX信息,试试再说。

出了:

Reverse

reverse-字节码迷踪

首先这是一个.cpy文件,我想的是把他反编译变成.py文件分析,用已有工具pycdc.exe,把解压后的文件py_obf_08.pyc和pycdc.exe放到同一个文件夹,cmd,输入pycdc.exe py_obf_08.pyc > output.py,然后在这个文件夹就可以得到反编译后的文件

进入

其实flag已经在其中了,稍加修改代码,运行就可以得到flag

flag{2gnkcpz7-sqi2-s48w-xt54-vsoghma1srly}

reverse-rerere

得到

DIE分析为64位,进入IDA分析,进入后shift+f12得

看到关键词input,再加上后面还有correct和wrong应该是在比较,推测输入的东西很有可能就是flag,进入

Fgets函数是在获取输入信息,其中最重要的数据为第一个参数buf,往下看找对buf处理的函数sub_140001480进入

分析while中的部分,进入byte_140004060,

找到其他几个数组内16进制内容,用python写还原的代码

得到结果flag {7fa6888d8465734047572ccf7a140b74}

Misc

幻影(shadow06.zip)

忘了名字叫啥了,好像是这个,里面获得一个bin.

010 editor里面看到了这个提示,说的flag假的,要base64,那就base64:

跑个base64:

93>8$mm<h<ki:rnh<nrk<nkrffngrflh:;:;<k:l="

依旧不是flag,但是看这个像要xor。

试一下,每个字符xor能导出一个flag:

签到题-损坏的压缩包

什么data.txt里面放个base64加密文:

解:

那就是flag{yznu}

迷宫(maze07.zip)

对。好像这个是迷宫。压缩包maze07.zip

极长的路径...

最后看得到一个:

010打开:

Base64,不想用shell了:

哈哈,有点没思路了,像个MD5,包个flag{}进去竟然是对的。

flag{ea632c6606becd9e46c1d392f8b0e6da}

Crypto

BabyRSA

题目说是baby RSA,看看啥样。

数。

看得出来这个Python脚本是n,e,c的产出过程。

这个脚本把flag变成long数(m),pq取512prime,c是pow(m,e,n),e就是公钥的指数,n又特别长,那密文也短得很。

又知道这个RSA里面,e小了就小于等于n了,所以可能出现不取模情况。

那么,对c在整数域开立方根得到m!

写个脚本。

整数上面开立方用二分法好做:

检查后作逆运算回bytes,目标是flag。

完整脚本:

确实得到了flag:

ScatterRSA

那还是RSA,看看内容:

p,q,n的获得方法和上面一题相似,但是有三次RSA,每次加密还用不一样的。但是指数e依旧是3,估计这是一个典型的带有线性填充的 Hastad 广播攻击。

过程用到很多构造的数学计算,不方便表达,那就列出来:

这个公式是每次都有做的计算。

首项化为1,使用中国剩余定理:

再用LLL求解,运用LLL的话需要构造一个基矩阵,应该是下面这样:

X是一个猜测上界,通过对该矩阵进行 LLL 规约分析,提取出最短向量即可恢复一个在整数环域上为0的多项式,求根便可拿到明文。

跑起来成功了就是flag:

flag{0e2f0e967e34f9aed84b1c7dcf619586}

ECDSA nonce 重用

题上给了一堆详细信息:

我们截获了某平台签发的 10 组 ECDSA 签名数据,每组包含: 同一个公钥 两条不同消息及其对应的 ECDSA 签名 安全研究员发现,该平台在签名时错误地重复使用了相同的随机数(nonce)k。 请利用这一漏洞,恢复出原始私钥,并提交对应的 flag。 每个压缩包 otp_XX.zip 中包含一个 challenge.json 文件,格式如下: { "public_key_x": "...", "public_key_y": "...", "message1": "57656c636f6d6520746f2074686520435446206368616c6c656e676521", "message2": "506c65617365207265636f766572207468652073656372657420666c61672e", "signature1_r": 123456..., "signature1_s": 789012..., "signature2_r": 123456..., // 注意:与 signature1_r 相同! "signature2_s": 345678..., "curve": "SECP256k1" } Flag 格式:flag{ecdsa_nonce_reuse_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}

大致看看,然后先看文件:

一个JSON,里面是?

和题目描述相关。

对于 ECDSA,签名生成的两个结果为:

和

然后因为两个签名使用了相同的k,使得r值相同。两式相减变换后得到了k。

用公钥了,验证SHA256和SHA1,也验证不SHA的情况,发现确实是SHA256:

爆了,看看:

错了。

看这个flag有点长了,是不是这个东西需要截断?我看到了flag后面32个x,那就该只截断到32位,再试试。

截断有多种可能,尝试截断私钥前128,后128,Nonce k前128,后128,甚至SHA256和MD5一起尝试,避免猜错,反正长度先固定下来。

试第一个flag:

成了,第一个就是对的。那么flag就是:

flag{ecdsa_nonce_reuse_27da112f7d3f0567c8d95827b4eff200}

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2026年6月4日

ShizukuAqua

这个人很懒,什么都没留下

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2026 年 1 月
  • 2025 年 11 月

分类

  • CTF
  • ESP32
  • Linux
  • MCU
  • Pwn&Reverse
  • Rust
  • 前端技术

COPYRIGHT © 2026 Ciallo~(∠・ω< )⌒★. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备2025171572号