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

[原创]第六题 Repwn Writeup

2019-3-20 16:38
2502

第六题 Repwn Writeup

Step 1-1

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

 

 

双击进入关键函数,

 

 

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

 

 

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

Step 1-2

跟进sub_401460函数,

 

 

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

 

 

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

 

 

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

for one in xrange(0,10):
    for two in xrange(0,10):
        for three in xrange(0,10):
            for four in xrange(0,10):
                for five in xrange(0,10):
                    for six in xrange(0,10):
                        for seven in xrange(0,10):
                            for eight in xrange(0,10):
                                v1 = 1000 * one + 100 * two + 10 * three + four
                                v2 = 10 * five + six
                                v3 = 10 * seven + eight
                                if v1 + v2 == 2020 and 100 * v3 + 3 * v2 / 2 == 115 and v1 - 110 * v3 == 1900:
                                    print one,two,three,four,five,six,seven,eight

得到输入前8位为20101001

Step 1-3

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

 input[20] -= 0x58;
 input[21] -= 0x46;
 input[22] -= 3;
 input[23] -= 0x6B;
 strcpy(&Dest, input);

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

 

 

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

  F0 1B 40 00
+ 58 46 03 6B
--------------
  48 61 43 6B
   H  a  C  k

运行发现出现新窗口

 

 

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

Step2

分析后续函数sub_401BF0

 

 

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

 

 

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

 

 

最终得到密文应为9db084ac97041e305697d5a499355a28

 

解密得

 

 

flag得第二部分为Wel1C0me

end

最终提交得flag为20101001X1Y0uN3tG00dHaCkWel1C0me


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回