web:[MoeCTF 2022]ezhtml
打开环境,没有给提示说要达到什么条件会显示flag
看源码,可以直接在js文件里面看到flag
同时也可以看到显示flag的条件,可以看到时总分大于600显示源码,那我们尝试修改一下,这边要注意他的判断条件,不是单一的对sum判断大小,前面还有一个条件是,所有科目的和与sum相等,所以我们不能只修改sum的大小,前面科目的分数也要修改,并且要满足两者所加的数字要相等,直接修改源码即可,不用下断点
pwn:[MoeCTF 2022]ret2text
查壳,ida
看主函数
声明buf为64字节,后面read函数读取100字节给buf,很明显的溢出点,也有后门函数
尝试写代码之后发现进程总是自己结束,去看wp发现大家都加了一个ret
我去找了一下资料没有很清楚:当函数执行到 ret
指令时,就会跳转到攻击者指定的地址,从而执行恶意代码。例如,攻击者可以将返回地址覆盖为一段 shellcode 的起始地址,这样当 ret
指令执行时,程序就会开始执行 shellcode,进而获取系统的控制权。为了避免一些内存对齐问题或者栈的不可执行限制等情况,会使用 ret
填充技术。
而且为什么加的ret是这个地址呢
misc:攻防世界倒转屋
文件是一张图片,常规的看看属性,用010分析一下都没发现什么,最后用stegslove分析,也没看到什么,去看wp原来就在stegslove,对三基色进行分析之后在开头可以发现倒转的flag,每个人都说可以发现这个是特殊信息,但是我横看竖看都看不出来
还有一种办法是用一个工具叫zsteg去扫描图片中的隐藏文件,这边我也下载尝试了一下,确实直接出来了
crypto:不仅仅是Morse
打开文件是摩斯密码加密,直接解密
提示有其他的加密,那么就只剩下培根密码和二进制了,尝试之后是培根密码
转换成小写即可
reserve:攻防世界reverse_re3
查壳,ida
在sub940函数可以看到输入正确的提示
可以看到是对v0的验证,只有等于相应四个值的时候才会有下一步的验证然后这四个值恰好是awsd的ascii值,可以大致确定是迷宫题目,继续看函数,在sub86c函数可以看到类似加密过程
可以看到判断语句中是对一个数组的‘i’位进行判断,追踪这个数组可以看到类似迷宫的数组
接下来就是怎么排列这个迷宫了,从上面验证这个数组的代码可以看到应该是15*15的迷宫,继续看其他函数
从这里可以看到4是终点,3是起点,提取出来的数组中不止一个3也不止一个4,而且字符的总数也不止225,字数总共是675个,那是不是要分成三分然后去组成三个不同的迷宫
可以直接用ai完成
ddsssddddsssdss
dddddsssddddsssaassssddds
ddssddwddssssssdddssssdddss
三个组合ddsssddddsssdssdddddsssddddsssaassssdddsddssddwddssssssdddssssdddss
MD5加密
还要套上flag{}