首页
社区
课程
招聘
[原创]第六题 Repwn Writeup
发表于: 2019-3-20 16:38 3139

[原创]第六题 Repwn Writeup

2019-3-20 16:38
3139

载入IDA,Shift + F12 查找关键字符串

双击进入关键函数,

分析后知,sub_4012f0为第一步的验证函数,跟进

经过分析知,flag的下标从8到20为X1Y0uN3tG00d

跟进sub_401460函数,

分析易知,输入字符长度为24,但是没有前8位的信息,进一步分析,进入sub_4013B0函数,

发现,函数中出现8个连续的全局变量运算,猜测input的前8位应该赋值给了全局变量,进入sub_401380验证

很明显的atoi函数,则结合对sub_4013B0函数分析,发现是对前8位的输入进行了限制,根据函数写脚本

得到输入前8位为20101001

继续,进一步分析,发现无论怎么找,都无法找到对输入最后四位的验证,而只有对后续四位的减法运算

进一步考虑溢出的问题,发现最后的strcpy函数将我们的输入拷贝到局部变量dest中,而就是input的最后四字节造成函数返回地址被覆盖,

于是,寻找合适的返回地址,后续发现一个很可疑的函数sub_401BF0,构造最后四个字符,使函数执行完后,返回到0x401bf0,考虑到小端序的问题,并且字节溢出高位舍去的问题

运行发现出现新窗口

最终得到flag的最后四位为HaCk

分析后续函数sub_401BF0

发现有个很奇怪的strcpy,继续跟进函数sub_401730和sub_4018b0,发现其中有几个很明显的已知加密函数特征,使用PEiD的插件查询是否有已知加密函数

查看地址0x401893,验证成功,那么上述strcpy的字符串,应该就是des的密钥,继续分析函数,在最终sub_4018B0中进行了比较

最终得到密文应为9db084ac97041e305697d5a499355a28

解密得


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//