CTF 逆向之MD5短爆破

    参加了集团公司的网络攻防大赛后,有道逆向里面的jungle.exe这个题,很有意思。于是想挑战一下。

首先查壳,丢到exeinfope里面一看,发现是asp的壳。

 

于是用手头的asp脱壳工具尝试脱壳,发现都不行,不是不支持就是报错!没办法,只能老实手工脱壳了。

根据ESP定律+IAT修复+重定向表修复后,脱壳的程序可以正常运行。

用OD载入后,开始单步跟踪

到用户输入界面,我随便输入了个字符串:111111111(9个1)单步跟入到下图,发现了flag字样

这个应该是flag的头,于是继续跟进,发现确实在核对输入数据与flag{比较,这块就过不去了

于是果断的从来,输入数据为 flag{111111111,来到了下图的地方,在0x16的位置比较0x7D 也就是'}'符号

由于C语言的字符串下标是从0开始的,也就是字符串第23个字符处必须是}

于是构造字符串:flag{11111111111111111} 继续跟进,接下来是在0x7、0xc、0x11处核对字符 '-' (即:0x2D)

于是字符串就变成了flag{11-1111-1111-1111},继续跟进,发现了一个字符串:01E3421C=dump_SCY.01E3421C (ASCII "c7218260ef2b966ab0454e07c55cf4e9")
感觉像是MD5的字符串,于是用python解了一下,得到: oh,结之前的flag应该就是flag{oh-1111-1111-1111}

再次输入后,继续跟进发现过去了,开始进行第二段的比较得到了下图的错误:

于是反复跟比较算法也没有找到任何有效的数据,结合本题的提示是md5段字节爆破,估计是这块需要进行爆破处理了。

于是继续python大法,得到字符串:flag{oh-aa30-1111-1111}

继续输入后,单步跟进,此时发现一个字符串:堆栈地址=001DFC30, (ASCII "YTkxYQ==")   eax=786B5459
看起来像B64编码,于是尝试解码,得到第三组的flag值:a91a 。

想起之前用od也看过字符串,于是找到第四组的字符串:NGZicA==   ,解码为:4fbp

那么最终的flag就是:flag{oh-aa30-a91a-4fbp} 输入后验证:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值