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),所以只能溜了,并且吐槽一下:我们队分数线过了,处于入选的中游,然鹅学校第三,溜了(狗头)

posted @ 2020-10-06 20:03  爱做梦的7ixia  阅读(301)  评论(0)    收藏  举报