NISA官方WP:
https://fjnusec.cn/2022/03/29/NISACTF2022-Official-WP/
MISC:
bilala的二維碼
附件是一個破損的二維碼:

使用畫圖工具修復后:

掃出來后是一個網址:https://video.gz2.com.cn/h666G/h666G_kzwIVy
得到一張jpg文件,
foremost 發現有一個壓縮包:

有密碼,提示說:

所以爆破只用字母就好

里面有個MP3文件,是摩斯密碼
這次get一個在線解密網站:Morse Code Adaptive Audio Decoder | Morse Code World
tips:掛梯子會快很多,不掛的話也能進,但是很慢
得到:

還要一個part,題目描述上還寫着:

回頭發現foremost出來還有一個jpg文件:

查看分辨率

得到flag:
NSSCTF{M0RS34ND282x231}
為什么我什么都看不見:
hex發現缺少文件頭,嘗試性不上后,依舊打不開:

但是最下面有其他文件:

改成壓縮包之后發現還是沒有什么:

看到這個文本試了試NTFS流,依舊沒有東西
然后,然后zsteg就直接梭了:

還有就是stegsolver也可以找到:

得到flag:
NSSCTF{Wlec0me_to_NiSa2022}
不愉快的地方:
osint的題Google找找,找找,就有flag了(絕對不是因為懶)
flag:
NSSCTF{清溪川_37.56,126.97_金賢民_6801}
bqt:
把滑稽的圖編輯后移開可以得到一串十六進制的字符串
這個題和第一次周賽一道題一樣的加密方法
直接上腳本:
flag='' s=["c8","e9","ac","a0","c3","f4","e6","e5","f2","a1","a0","d4","e8","e5","a0","e6","ec","e1","e7","a0","e9","f3","ba","a0","e6","ec","e1","e7","fb","f7","e5","e6","e5","ef","e9","e4","ea","e7","ef","e5","e4","f3","e6","e9","ef","f2","f0","e5","e6","e4","e6","e7","e7","e6","e4","f3","e5","fd"] for i in range(len(s)): flag+=chr(int(s[i],16)-128) print(flag)
flag:
NSSCTF{wefeoidjgoedsfiorpefdfggfdse}
bmpnumber:
附件是一個bmp文件
文件名給了提示,wb4
使用wb4stego解密,密碼為空,得到一張二維碼

一張奇怪的二維碼,重新用新的定位符覆蓋原來的

掃出來是一個網址:http://qr61.cn/ogZAdB/qtOvmyN

弱密碼password得到一個word文檔
進去之后有一串字符:
rdcvgtkopqwsztfvbhbhjmiklprfgyygbnjwsdredftwsdr
似乎解密解不出來
下載文檔
發現后面有一串紅色波浪線,

修改字體顏色之后就可以得到flag

NSSCTF{this_is_you_need_flag!}
破損的flag
USB流量分析
里面有個GitHub的腳本可以直接解密:
GitHub - WangYihang/UsbKeyboardDataHacker: USB鍵盤流量包取證工具 , 用於恢復用戶的擊鍵信息
然后

得到一串奇怪的字符
ujkonjk,tfvbhyhjipokrdcvgrdcvgpokqwsztfvbhujkowazxdqasewsdrpokxdfviklpnjkwsdrrfgyrdcvguhnmkbhjmyhji
鍵盤密碼,解出來
i m g u l f f l a g i s w e l c o m e t f j n u
拼一下就得到flag,並且要補齊to
NSSCTF{welcome_to_fjnu}
流量包里有個熊
不出意外,這個流量包里有個文件,


然后正常思路掃一遍
Hex

binwalk得到的壓縮包里有倆txt文件

短的沒啥用

rot13之后就可以發現這個是個十六進制

扔進010editor

保存后得到一張jpg文件

然后使用水印工具

yysy,反正我看不出來這個flag
flag:
NSSCTF{S0_clev2l_You}
PWN:
ReorPwn?:
一句話:

flag:NSSCTF{1c112222-afcc-49c7-a1c4-218a520784f0}
RE:
string
64位無殼,flag在flag函數,偽代碼:
char *__fastcall flag(char *a1) { char *v1; // rax int v2; // ST34_4 char *v3; // rax char *v4; // rax int v5; // eax char *v7; // [rsp+8h] [rbp-38h] int i; // [rsp+1Ch] [rbp-24h] int j; // [rsp+20h] [rbp-20h] int k; // [rsp+20h] [rbp-20h] int v11; // [rsp+24h] [rbp-1Ch] signed int l; // [rsp+28h] [rbp-18h] int v13; // [rsp+2Ch] [rbp-14h] v7 = a1; v13 = (_DWORD)a1 + 1; if ( (_DWORD)a1 << 30 ) { while ( 1 ) { v1 = v7++; if ( !*v1 ) break; if ( !((_DWORD)v7 << 30) ) goto LABEL_4; } } else { LABEL_4: for ( i = (signed int)v7; !((i - 16843009) & ~i & 0x80808080); i = v2 ) { v2 = v7[1]; v7 += 4; } v3 = v7++; for ( j = *v3; j; j = *v4 ) v4 = v7++; } puts("This a magic!"); v11 = (_DWORD)v7 - v13; for ( k = 0; (signed int)v7 - v13 > k; ++k ) v11 ^= 0x1Au; if ( v11 != 13 ) { puts("error!"); exit(0); } puts("The length of flag is 13"); srand(seed); printf("NSSCTF{"); for ( l = 0; l < 13; ++l ) { v5 = rand(); printf("%d", (unsigned int)(v5 % 8 + 1)); } putchar(125); return &v7[-v13]; }
比賽的時候做,由於缺少經驗,所以沒認出關鍵字符
IDA逆向之常見的庫函數偽代碼的表現形式 | 碼農家園 (codenong.com)
得知,這就是常見的strlen函數
但是吧,好像這個題不咋需要這個,
發現下面有個NSSCTF{字符串
后面的125ascii之后是}
那么flag就在這個循環里面了,
直接寫個循環就得到了flag:
腳本:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int seed=10086; int i,v4; srand(seed); for(i=0; i<13; i++) { v4=rand(); printf("%d",(v4%8 +1)); } return 0; }

更正,不管做題還是比賽要注意題目給的附件的文件類型,
這道題是個ELF文件,只能在虛擬機里編譯運行C語言腳本,才能得到flag

flag:
NSSCTF{5353316611126}
這題嘗試動態調試(記錄第一次)
因為文件是ELF,所以使用Ubuntu的gdb進行動態調試
注意的點:

