CISCN初赛纪实
身为弱鸡的我突然抱到了大佬,想尝试尝试ciscn,所以就去冲了,之后就被冲了

在此记录一下做过的题和没做过的题看过大佬的wp的学习心得(因为个人是对crypto和misc什么的感兴趣,所以本次比赛就负责玩?玩?这边):
MISC:
#1 签到:
别问,问就是1040人参赛成功
#2 the_best_ctf_game :
拿到文件后,将其改为 txt 格式(以文本方式打开) 就会看到有一列是 flag,使用 Notepad++等工具按列选中复制, 粘贴于一个新文本文档中, 替换掉末尾的换行符, 即可得到 flag。
flag{65e02f26-0d6e-463f-bc63-2df733e47fbe}
#3 电脑被黑:
接下来是疑似错误的菜鸡行径:
拿到文件后解压发现像是个盘文件,所以废话不多说直接挂载。
挂载后发现里面由3个文件夹,在misc01里发现fakeflag.txt。打开是一堆乱码,先放在一边。以及还有一个demo文件,用ida打开后读取程序:

这里就只展示了主要代码了...之后进行逆向编译:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { const auto path=;//读取文件内容 char v4=34; char v5=0; const auto stream=fopen(path,"rb"); const auto stream=fopen(path,"rb+"); while(1) { char v6=fgetc(v7); if(v6==-1) { break; } fputc((v4^v6)-v5,stream); v4+=34; v5=v5+2&0xF; } fclose(v7); fclose(stream); return 0; }
编好后,将fakeflag.txt放进去走一遍,得到的信息按理来说本身也没什么用,但是我在这里出现了一些问题,就是基本上是偶数位显示存在一些问题。但是看大佬们的wp,应该没什么问题,所以至今不知道哪里出了问题……
之后没了思路,之后就瞎搞,用extundant恢复出一个文件,也是flag.txt。之后不知道有啥用……
然而我就卡在了这里,不知道怎么做下去。
看大佬的wp(戳我),是直接暴力搜索了”flag“原16进制码,得到了一段代码,将其进行逆向编译得到最终答案。
Crypto
#4 bd
拿到文件后,解压打开 task.py。发现得到的 n 和 e 都挺大,且发现代码中生成的 d 较小,考虑使用 Winner's Attack,由于 RsaCtfTools 集成了该功能,使用RsaCtfTools 执行下面 Shell 代码后得到 p, q, d,之后使用下面 Python 代码解密即可得到 flag。
其中:
n=86966590627372918010571457840724456774194080910694231109811773050866217415975647358784246153710824794652840306389428729923771431340699346354646708396564203957270393882105042714920060055401541794748437242707186192941546185666953574082803056612193004258064074902605834799171191314001030749992715155125694272289
e=46867417013414476511855705167486515292101865210840925173161828985833867821644239088991107524584028941183216735115986313719966458608881689802377181633111389920813814350964315420422257050287517851213109465823444767895817372377616723406116946259672358254060231210263961445286931270444042869857616609048537240249
#Shell: python3 RsaCtfTool.py --createpub -n {题目中给出的 n} -e {题目中给出的 e} > test.pem python3 RsaCtfTool.py --publickey test.pem --private > test.key python3 RsaCtfTool.py --key test.key –dumpkey
import gmpy2 from Crypto.Util.number import * n=86966590627372918010571457840724456774194080910694231109811773050866217415975647358784246153710824794652840306389428729923771431340699346354646708396564203957270393882105042714920060055401541794748437242707186192941546185666953574082803056612193004258064074902605834799171191314001030749992715155125694272289 d=1485313191830359055093545745451584299495272920840463008756233 c=37625098109081701774571613785279343908814425141123915351527903477451570893536663171806089364574293449414561630485312247061686191366669404389142347972565020570877175992098033759403318443705791866939363061966538210758611679849037990315161035649389943256526167843576617469134413191950908582922902210791377220066 m=gmpy2.powmod(c,d,n) print(long_to_bytes(m))
flag{d3752538-90d0-c373-cfef-9247d3e16848}
暂时就先记录这些,其余队友所写的wp我找不到了(wdwmd),所以只能溜了,并且吐槽一下:我们队分数线过了,处于入选的中游,然鹅学校第三,溜了(狗头)

浙公网安备 33010602011771号