首页
社区
课程
招聘
[原创]再谈SECCON secure_keymanager
发表于: 2017-12-17 21:32 4198

[原创]再谈SECCON secure_keymanager

2017-12-17 21:32
4198
 

t00ls上有一篇讲这道题的帖子:

 

https://www.t00ls.net/thread-43133-1-1.html

 

细细研究了一下这道题,并参考了多份来自复旦六星的writeup,这里表示感谢。

 

https://github.com/sixstars/ctf/tree/master/2017/seccon/secure_keymanager

 

不过根据我的动态调试,这题有个更为直接的思路。

 

因为题目中所给的libc中printf的LSB刚好为00,所以可以造出0x70的fastbin去重定向到GOT上。并且在GOT上的顺序也恰到好处,atoi在最后,中间有几个无关紧要的函数。

 

也就是说,三次free后,依次malloc最终拿回GOT上的chunk,修改atoi为printf,就可以了。

 

最终应该改成如下:

[0x602018] free@GLIBC_2.2.5 -> 0x7f0d103224f0 (free) ◂— push   r13
[0x602020] puts@GLIBC_2.2.5 -> 0x7f0d1030d690 (puts) ◂— push   r12
[0x602028] __stack_chk_fail@GLIBC_2.4 -> 0x4006c6 (__stack_chk_fail@plt+6) ◂— push   2
[0x602030] setbuf@GLIBC_2.2.5 -> 0x7f0d103146b0 (setbuf) ◂— mov    edx, 0x2000
[0x602038] strchr@GLIBC_2.2.5 -> 0x7f0d10327ab0 (__strchr_sse2) ◂— movd   xmm1, esi
[0x602040] printf@GLIBC_2.2.5 -> 0x7f0d102f3800 (printf) ◂— sub    rsp, 0xd8
[0x602048] malloc_usable_size@GLIBC_2.2.5 -> 0x400706 (malloc_usable_size@plt+6) ◂— push   6
[0x602050] read@GLIBC_2.2.5 -> 0x7f0d10395220 (read) ◂— cmp    dword ptr [rip + 0x2d2519], 0
[0x602058] __libc_start_main@GLIBC_2.2.5 -> 0x7f0d102be740 (__libc_start_main) ◂— push   r14
[0x602060] strcmp@GLIBC_2.2.5 -> 0x4141410d1033d570
[0x602068] malloc@GLIBC_2.2.5 -> 0x4141414141414141 ('AAAAAAAA')
[0x602070] atoi@GLIBC_2.2.5 -> 0x4006f0 (printf@plt) ◂— jmp    qword ptr [rip + 0x20194a]

那么这个题就变成printf的题目了,printf的利用留作习题。


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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 9
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习!
2017-12-17 21:35
0
雪    币: 4997
活跃值: (3115)
能力值: ( LV15,RANK:550 )
在线值:
发帖
回帖
粉丝
3
 

这里有一份我自己写的习题答案,欢迎参考
http://fars.ee/5tKc/python

2017-12-17 22:20
0
雪    币: 560
活跃值: (944)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
题主,给个t00ls的邀请码啊@diycode 
2017-12-18 08:16
0
雪    币: 4997
活跃值: (3115)
能力值: ( LV15,RANK:550 )
在线值:
发帖
回帖
粉丝
5



babalove

题主,给个t00ls的邀请码啊@diycode
我只是普通会员……买不起邀请码啊
2017-12-18 08:43
0
游客
登录 | 注册 方可回帖
返回
//