pwnable.twapplestore 分析

青春须早为,岂能长少年。这篇文章主要讲述pwnable.twapplestore 分析相关的知识,希望能为你提供帮助。
 
此题第一步凑齐7174进入漏洞地点
然后可以把iphone8的结构体中的地址通过read修改为一个.got表地址,这样就能把libc中该函数地址打出来。这是因为read函数并不会在遇到\\x00时截断(就是在read字符\'y\'的时候)。
然后还可以采用同样的办法把libc中的libc.symbols[\'environ\']打出来,这个值存储着当前栈中环境变量所在的位置,因而可以得到栈的位置。
然后具体分析在进入delete之后的情景:
【pwnable.twapplestore 分析】

pwnable.twapplestore 分析

文章图片

将程序断在delete中的关键位置,此时ebp为0xffac6cc8,而v2的值为0xffac6ca8,即在atoi数字后面的值,因而可以控制v2和v4,v5
然后可以通过这个*(_DWORD *)(v5 + 8) = v4; ,把ebp改掉。v5=$ebp-0x8,v4=atoi_got_addr + 0x22,这样在下次handler中就可以向atoi_got中写入system地址了。
 

    推荐阅读