MISC
sign_in-网络安全法-上半场

下载附件得到1.jpg,使用010 Editor查看文件十六进制数

在文件末尾发现类似base64编码,base64解码

得到一串社会主义核心价值观编码,解码得到flag

nynuctf{zun_ji_shou_fa_hao_qing_nian}
点评:滴,签到成功
easy_docx-上半场

下载附件得到一个docx文档,打开之后看到图片,熊的身上写了一个58,第一反应可能是指base58,习惯性将图片拖走查看内容
文字下面有虚线,说明是隐藏文字,得到flag第一部分。

TIPS:Office365打开显示隐藏文字的方法是: 选项-显示-显示隐藏文字

再查看文档的属性,发现作者为一串编码,结合熊身上的58,base58解码得到第二部分flag
nynuctf{the_docx_structure _is_amazing}
点评:一眼Riddler师傅的题,其实跟去年的一个题很相似
novel-上半场
为数不多的一血题,今年学弟学妹挺厉害,web题都没抢到一血
下载附件,得到一个png,一个带密码的压缩包,png试了种种方法发现是bwm盲水印,并且是原图和分离出的图片盲水印

得到压缩包密码,解压得到羊脂球.txt

看到开头有n的字样,往下搜索发现nynuctf{都有,于是写脚本去掉所有中文字符

去掉之后手动拼接,得到flag
nynuctf{Flag_1s_1n_the_n0vel}
点评:难点在于盲水印,做题体验极佳
二二二维码-上半场
也是为数不多的一血,比较考验写脚本

作为被ISCC2021的受害者,看到破晓第一时间就想到了套神的4w个二维码,解压一看,不出所料,3700个二维码

最后一个flag.png,扫描后内容为:

话不多说,直接写脚本开扫,借鉴之前ISCC的方式使用pyzbar和PIL库实现二维码扫描

扫描结束后发现,每个二维码有37个字符,总共3700个二维码,相当于总共136900个字符,开平方是370,并且都是0和1的集合

于是想到拼凑二维码,一个数字是一个像素,拼成一个370*370的二维码,写脚本拼图

得到二维码,扫描得到flag
nynuctf{Please_V_Me_50_daidachutiren}
点评:虽然容易挨打吧,但还是挺好的一道题,考验脚本和数据处理能力
文件的传输-上半场
附件为一张图片,一个带密码压缩包,一个pcapng流量包

这道题其实挺多种做法和一个非预期,使用wireshark或是suoha.png中提示的NetworkMiner都可以,前者需要手动分离文件,后者可以自动保存文件。或是一个非预期,流量包直接分离就能分出五个二维码。
我这里使用的是Wireshark,分离出五张二维码之后扫描

扫描后转ASCII码,即为压缩包密码,解压后得到base64,解码得到flag

nynuctf{nynusec@_@nynusec}
点评:一个坑是二维码内容容易以为是Hex

点评:一个坑是二维码内容容易以为是Hex

swap-上半场
下载附件得到压缩包,爆破得到密码

解压得到output ,文件类型未知,使用010打开

钻研了好久发现每两个字符反转一次就是png的文件头,写脚本

反转十六进制字节流后为一个二维码,扫描二维码得到一段话

但最后这个密码似乎没有用上,分离出来的压缩包为未加密,解压得到flag.txt

结合文本中的base和题目描述中的IP,鉴定为ipv6码表的base85
解码

nynuctf{Th1s_1s_base85_1pv6!!}
点评:感觉是难度最高的题,盲水印难度适中,后面的字节流反转很考验能力,最后的b85非常规码表最后一道关
RE
你好,逆向工程-上半场
将附件中的exe用IDA打开,查看main函数

一个数组cp,下面是cp1和flag的转换过程
直接将for循环从cp1[i] = I + flag[i] 反转为 flag[i] = cp1[i] – i
脚本如下:

运行脚本得到flag:
nynuctf{he11o_th4_Reverse_world}
点评:入门签到re,可我用了十分钟才出…
re2-上半场
IDA打开,查看main函数

发现有encode1 encode2 encode3 ,encode3之后就是congratulations,查看encode3函数

发现correct数组

R了之后发现是flag类似物,赶紧复制出来

再往上看encode2

最后看encode1

结合题目 “贝斯” ,并且里面还有base a-z1-9+/ 的码表,虽然看不懂,但是py了这么多次re,我能猜到是实现base64的函数,并且不是标准码表
然后尝试用encode2的函数对correct进行处理,(咱不会直接给他变成十进制,我是手打的,一个个从十六进制转换成十进制的数组)

转换完成后尝试将三个if处理倒过来

全部翻转后尝试执行

有点像ISCC的一道re,这里应该该最后一部也就是encode1了,就是那个base64魔改

nynuctf{57e0cb4d-eae5-48ec-8091-149dc2b309e0}
点评:作为一个web手,体验还算友好的一个re,虽然也花费了好多功夫..
PWN
babystack-上半场
首先下载stack1 ,为elf文件,首先使用checksum查看保护

除了NX其他均未保护,嗯,很好,跟教程里的一样
然后拖进IDA

看到printf我就想到格式化字符串,后来发现不是format string,而是stackflow栈溢出,找了找发现了shellcode ——func函数

想了想逻辑,就是利用栈溢出想办法执行到func函数也就执行到了/bin/sh,所以根据教程开始查看esp和ebp


flag{84094c8a-5889-5fe9-f702-a587aac96835}
点评:第一次做pwn题,一个栈溢出,最早以为payload是没问题的,后来发现其实是非预期了
Crypto
有趣的瓶子-上半场

下载得到图像,想了好久,最后联想到瓶子,假设从瓶口灌水,按照水流的顺序(先留到那个格子)的顺序去排序字母,随后解Hex

nynuctf{amazing!!}
点评:脑洞挺大,最早想了好久没想到这个逻辑
Web
有趣的PHP-上半场

首先a 和 b 都是通过extract函数传进来,a和后面的c1c2都是老生常谈了,科学计数法绕过和md5碰撞,b这个是因为extract()函数可以覆盖所有现有变量 ,所以自己再定义一个xinhunyin变量即可绕过第二关,最后一关也是新类型。利用的是intval()函数默认不带科学计数法后部,最后payload:

flag{8d6d287f-d665-4ebc-995a-8b7dc253fcob}
点评:第二关和第四关都是第一次碰到,比较新鲜
来敲一段摩斯电码吧 -上半场

感觉是请求后端的接口,看了一下确实是

Hackbar发包

flag{eb9dd29c-cade-4592-83d4-bf6c8a1ef936}
点评:WP不能再做了,点到为止,不能再多了
easy_sql-上半场

这个样式第一眼想到2019强网被的随便注,首先测试’ or 1=1#,存在sql注入,随后找到注入点1和2,先查看数据库名,为’test’,随后爆表:
' union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'test';#

经寻找,爆users表中的字段:
' union select 1,group_concat(column_name) from information_schema.columns where table_name = 'users';#

然后查看password字段:
' union select 1,password from users;#

flag{84a68867-7ffd-4952-bfa6-ee100fae5353}
评价:听说可以sqlmap跑出来,不过我手注的
JWT 了解下-上半场

根据表单框里的value,admin123/123456,其实需要admin登录,结合题目名字,判断是一个jwt的cookie伪造。

Cookie为三段,是HS256加密,就不能像没加密一样直接改用户名了,使用开源项目“jwt-carcker”爆破密钥

得到密钥为nynu,写脚本重新生成admin用户的cookie

向登录接口发包,修改优化的cookie,发包,得到flag

flag{8fd82fa0-2843-4859-8f79-9d2c7aa2eaaa}
easy_upload-上半场

文件上传题目,上来要密码,试了admin等常见弱口令不对,扫目录发现/robots.txt有账户密码

登陆进去尝试上传一句话木马

Eval被过滤了,一咬牙,直接上system函数



可以成功执行,我就分别上传了3次,查看了当前目录、根目录、网站根目录,最后在网站根目录发现flag

这里使用tac命令去查看,在源码里找到flag


flag{8fbc3c68-a261-4c1c-8669-e2da710caa6d}
最后点评:感觉这道题会有非预期,/image目录也可以解析,不过没有深究
成绩:

如愿以偿地满足了我的一次第一梦,不过仍要保持谦卑,计算机的水很深,仅触冰山一角
Comments NOTHING