2024 UofTCTF re wp

发布时间:2024年01月22日

CSS Password

给了一个html文件,拖进浏览器

F12打开控制台,其中五个小球的初始背景为绿色,只是被红色的给覆盖了

在网页源码中能看到以下代码,结合GPT能大致理解,即当byte1的第七位为set时会把第一个check_state移开。一共十九个byte,一一设置好就行

All Worbled Up

文本编辑器打开附件

是python的字节码。可以结合GPT大概还原源代码,居然被看出来是CTF题目了

修复后,完整代码如下

如果要爆破,一共九位字符,每位字符有七种情况,那么也就是7的9次方,四千多万次。开干,脚本

这里需要注意的是,在字节码中是调用了shmorble这个函数来取逆序字符串的,但是发现题意中给的字符是没用这个函数的,导致我第一遍跑完了整个过程。。实际上爆破也就两三分钟

Random Maze

?

附件拖入ida

这里要注意,输入格式是%lx即把输入看成十六进制

main中两个函数。一个是如果输入不满足条件则调用退出的函数

而cur是个指针,最后一层是个函数指针,输出flag

仔细观察traverse函数中涉及输入的运算,可以发现其实只要知道第一个字节就能反推其它所有字节。结合各种限制,求第一个字节的可能值。脚本。这里为什么要倒序输出,是因为在调试时发现在写入输入字符串时也是按照小端序写入的,所以第一个要应该被程序处理的字节应该放在最低位。更换第一个字节的值,多次尝试,最后发现当第一个字节为0x2E时可行

Love Debug

?

附件拖入ida

只有一个四千多行的start函数,可以观察到是通过系统调用来输入输出以及退出

所以自然而然就想能不能定位到输入部分,所以搜索mov edi,0,因为write是mov edi,1嘛

发现有两处,但是有一处是exit,所以程序只有唯一的输入处

下断点运行

尝试查看输入的buffer区域即r8寄存器的值,发现地址附近直接出现flag

CEO’s Lost Password?

?

附件用jeb打开

直接把所有代码复制到新建的Java项目中

最主要是Main.a方法

调试发现,输入密码后,验证部分先调用a类的a方法,里面再调用Main的另一个a方法

下面就是对输入具体做处理的函数

经过观察可以发现每位字节的运算虽然看起来复杂,但是涉及到的变量也就三个,自身、索引和循环次数,其它都是常量,所以是可以直接爆破的。脚本

这里有一点要注意,从String.getBytes后,要把前两项去掉然后再解码

总结?

如果有哪里写错了,请邮件wei0480@qq.com

最后。我好菜啊,呜呜┭┮﹏┭┮,只能打打大佬们都不打的比赛,想找大佬带带

?

文章来源:https://blog.csdn.net/wmr66/article/details/135645149
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。