web:[HNCTF 2022 Week1]2048
之前也做过类似的题目,之前的解法是直接get传参score=20000,可以尝试
打开环境看源代码,直接改源代码显然是不行的,那么用一下上面的办法也不行,估计是要改其他方向的,尝试在源码里面找找看有没有什么
可以找到如果超过20000分时得到答案执行的函数
可以看到时直接对一串数字进行加密的,加密的方式可能时自定义的,可以直接在控制台执行这个函数得到答案
当然也可以在源码执行过程中做一个断点
断点概念
然后设置score=200000超过20000即可,之后再运行
pwn:[GDOUCTF 2023]Shellcode
查壳,ida
看一下主函数,声明buf为10字节,后面又读取64个字节给buf存在溢出
没找到后门函数,看一下name和read函数,也没看懂什么,太模糊了,看一下别人的做法
是再bss段写一个system函数,然后执行bin/sh/,因为bss段时可读写的,所以可以写,之后写的shellcode是十六进制的/bin/sh,没理解。这里是借助read函数由于name是在bss段可读写,且又被read函数执行,所以把shellcode写进name,那上面那个溢出又是用在哪里?
很迷啊,发送payload的位置也搞不清楚
bss含义
misc:攻防世界can_has_stdio?
打开文件是这样的,一看以为是什么迷宫还是一起列顺序的解密。
但是光看这些字符的话,倒是很像brainfuck解密,但是它这个排列也是很奇怪,总不能直接解密吧
尝试把它变成规整的格式,解密不出来
经过很多尝试,他就是直接解密而已...
crypto:polar靶场动物世界
打开文件,像是佛语,又像是兽语,还是先解密看看
光搜索相关的解密还真不好搜,但是萌研社还刚好又一个与熊论道
解密出来就简单了就是兽语加密而已
reserve:攻防世界game
查壳,ida
找到主要的函数
把加密的思路给出来了,首先是v2每个元素与自身进行异或等于v5,之后再和19的十六进制异或得到答案
直接逆着写脚本
我也尝试开一下这个程序
也就是说要我们把所有的灯都点亮,n=1的话他n和n-1都亮了
再n=2两次得出结论就是每次n、n-1、n+1都会按一次开关和灯一样,玩不出来,后面无意间试出来了就是12345678