一道RWCTF体验赛的逆向题

VSole2023-01-14 13:56:04

前言

周末参加了一下RWCTF体验赛(正赛搞不动),做了道安卓的逆向题,挺有意思,分享下我的思路。

运行

直接拖进手机,发现是个贪吃蛇游戏,通过四个方向划动控制蛇蛇的方向,那可能就要通关或者长度达到一定条件才能拿到flag: 

JAVA层分析

把APK拖进GDA,直接看。    没有加固,不涉及native层,这是好事:   

涉及的就是snakeView,直接看代码有点费时费力,发现这个游戏你撞墙或者撞到自己,会提示要求重来,这里有个弹框,我习惯直接hook打印调用堆栈,用来定位(当然这里不这样直接找也能找到)。 

直接能定位到了,就是在run线程里,跟进去最后执行的函数如图:  

发现label_0127中的判断(大于55很可疑),动态调试一下可以看看这里:  

Jeb动态调试

根据上面分析的位置,在判断是否大于55的地方下断点,用jeb进行动态调试。  

当你吃到方块的时候,会触发断点。  

将值修改成大于55。  

放过跑起来,发现刷新的方块图片变成了字母,那这里就可以推测,当这个值大于55时,开始逐个刷新字母方块,最后可能就是flag:  

继续跟进,发现加载图片时,是执行了b方法(同样不触发上面条件则是a方法):

这里我解压,找了下apk中的资源,找到了所有刷新时生成的方块图片资源(不同方法加载前缀a或b的png,其中bx.png是用来生成flag的图片):

根据上面的判断,接下来问题就在b方法中的this.f这个数组内容是什么,v就是从0开始递增可以不用管(label_0127中只改了c为1,v++),找到f:

可以看到是在初始化这个类时通过a.a方法,解密了一串字符串,得到一个数组,再赋值给f,同样通过动态调试可以获取到。

然后就对照上面资源里面图片的命名,对号入座就可以了: 

EK33PG01NGD0N0TG1V3UPPP

最后不要忘记,舍掉第一位,因为b方法第一次执行,v已经是1了,然后加上flag包裹就可以了。  

本作品采用《CC 协议》,转载必须注明作者和本文链接
周末参加了一下RWCTF体验(正搞不动),做了道安卓逆向,挺有意思,分享下我思路。运行直接拖进
RWCTF 5th Shellfind复现
2023-01-28 09:45:29
前言RealWorld CTF 5th 里一道iot-pwn,根据真实设备固件改编而成,觉得目贴近iot实战且很有意思,故在此记录一下复现过程。目分析目描述Hello?从中可以看出漏洞大概率存在于UDP服务中。相比于常规pwn单一二进制而言,我们首先要做是寻找漏洞文件。下载到官方固件后,可以采取bindiff等方法去找被修改过二进制文件。可以初步判定漏洞应该是出在ipfind程序中。并且发现此固件为mips大端,且可疑漏洞文件没开保护。
跟php pwn一样,以前遇到这样pwn直接都不看,经过了解之后发现,老版本Musl libc和新版本之间差距还比较大。结合最近几次比赛中出现Musl pwn,学习一下新老版本Musl libc姿势。
在该程序中只需要判断x=4即可获得系统shell。查看发现x值为3,同时得到x地址为0x804A02C在printf函数中参数可控 于是可能存在格式化字符漏洞,利用字符串漏洞重写x值。输入字符串会存储进入栈内,然后printf函数使用输入内容作为格式化字符串进行控制输出。输入多个%p打印栈上内容判断输入数据在栈上离栈顶偏移。构造如下AAAA-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%pfrom pwn import *p=remoteadrr=p32PAYLOAD=b"AAAA-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p"p.sendline. p.interactive()可以计算该偏移量为11。
看过我另一篇文章大家应该清楚花指令还原,也可以用脚本,但是这里花指令不多,故而我们直接手动来快速还原。弹出如下框,这是在IDA在质问我们人类智慧一个警告,直接Yes就可以。至此,上述去花操作完成。然后,我们选中整个函数部分0x401450~0x401566,然后按快捷键P,让整个函数能被IDA正确识别。
前言随着射频识别技术发展,射频卡被广泛应用在了门禁控制、金融支付、库存管理等场景。在此背景下,各种安全认证机制应运而生,为保护个人隐私和敏感数据供了可靠保障,本文将通过一道 CTF 目介绍 M1 卡采用 AES认证机制,揭示其背后原理。
01目录扫描分析代码这是一道很好反序列化字符串溢出目,首先打开容器看到这是一个上传点先进行目录扫描,
安装app后打开,点击验证示我们flag格式错误,请重试。红色图部分为源码目录,也就是dex文件反编译后源码。R文件存储了资源相关id,比如图片资源,按钮,文字等信息都存储在这个R文件里。在需要使用时就用R.xxx.xxx调用即可。
在上周末深育杯线上中,遇到了一个挺有意思目,叫 HelloJerry,考察是 JerryScript 引擎漏洞利用。
前景刚刚结束浙江省网络安全大赛,其中Web类第二考察了POP链以及原生类利用,在比赛期间只构造了POP链、得到flag文件名,但是并没有利用原生类将flag文件完整读出来。这篇文章将会把这个涉及到知识点复现一遍,并且给出这个详细WP。
VSole
网络安全专家