2025lilctf
Crypto
ez_math
AI梭
1 | |
题意是将flag构建对角矩阵并进行一次相似变换,但是通过相似变换特征值不变,因此求矩阵特征值即可得到原来的flag。
mid_math
AI梭
1 | |
题意构造了个矩阵,然后使用key对其幂次化,再使用key对flag AES加密。因此要恢复出key,首先要对C特征分解,然后在这个基下对角化D,再解离散对数,使用CRT合并找到最终的key,然后解AES即可得
Misc
PNG Master
part1文件结尾
part2
part3
binwalk得到个压缩包
hint 0宽隐写
secret.bin
拼接起来From hex得LILCTF{Y0u_4r3_Mas7er_in_PNG}
v我50(R)MB
Content-Length被限制10086,想办法解除限制。尝试的过程就不说了,反正最后nc手动发http请求,发现有IEND,提取出来即得图片
提前放出附件
根据题目名称以及描述里的日期,又看到里面的zip加密套tar,立刻想到了ciscn半决那两个附件。bkcrack明文攻击得到。记得很清楚是因为也干过,而且那时候某个群里面一直在说明文攻击(笑)
不过有点不一样的是ciscn当时的tar好像是deflate,不知道怎么爆,这个只是store直接tar结尾padding 00就行
PWN
签到
标准的ret2libc,好久没玩了,复制以前的脚本调整下就能跑
1 | |
Reverse
1'M no7 A rO6oT
第一眼没看出来怎么运行powershell脚本的。010里打开mp3翻到个script标签,提取出来,然后把执行的那些换成打印来输出解密,逐个逐个手动解
最后得到请求了bestudding.jpg这个文件,同样下载下来同样方法解密两次
ARM ASM
Java层比对,送入native加密,静态注册函数,一个看不懂的加密以及换表base64,先手动解换表Base64,然后AI写脚本
1 | |
Oh_My_Uboot
U-boot,不懂,查资料问AI,用qemu跑起来,发现要输入密码,附加个gdb给IDA调试用。架构来自于里面的字符串,其他的也跑不起
1 | |
逐步跟踪到输入密码的函数,一个while 1,解密字符串提示输入密码,然后获取输入,传入密码处理校验。下面是对密码处理并校验的函数
得到是异或0x72然后换表base58
Qt_Creator
没看到有什么加密函数,而且出得很快,怀疑是明文比对,使用Cheat Engine搜字符串没搜到。先让程序跑起来,然后在输入注册码的时候IDA Attach上去,在0x410100打断点逐步调试瞎找,真找到了
obfusheader.h
根据题意,动态调试,找到输入flag的地方
然后给存储输入flag的地方打个读写断点,每次断的时候看看干了什么就行
1 | |
Web
Ekko_note
审计代码,执行命令->check_time->时间api返回>=2066->修改时间api->需要admin->忘记admin密码->利用uuid8生成token->token可预测->利用token可以重置密码->可以登录admin
1 | |
得到token后重置admin密码,然后设置时间api为自己的服务器
1 | |
然后利用RCE接口,使用python反弹shell
1 | |
ez_bottle
问了下AI,AI说可以直接% include ("/flag"),试了提示不能绝对路径要用相对路径。然后测试各种长度的../都不行,然后又看了下文档说%可以执行Python,使用subprocess复制到当前文件夹
1 | |
然后再include读取文件
1 | |
Blockchain
部署合约,获取合约字节码
反编译,https://ethervm.io/decompile和JEB都用了一下,感觉差不多,反编译完看一下,然后是0x5cc4d812这个sig的函数传入一个值,经过异或后,keccak256与slot里的数据进行比对
1 | |
拿了之前出过但没用上的题目exp脚本,打印一下slot,得到结果后异或一下
丢给AI写交互解题脚本
1 | |