- 博客(2)
- 收藏
- 关注
原创 2024羊城杯pstack【多次栈迁移】
这样一来就好办了,我们设想若第一次溢出时把rbp的值覆盖成bss段的某个地址,再把ret覆盖成lea rax [rbp+buf]指令的地址,这样一来程序执行第一个payload,leave指令中的pop rbp把rbp迁移到bss段处,ret指令让程序返回执行lea rax [rbp-0x30],然后继续往下当执行到call read时,我们就成功实现了从迁移到的地址减去0x30处写入数据了。3.竟然栈上不行,我们可不可以联想到bss段呢,毕竟本题并没有开pie,我们是可以通过ida知道bss段地址的。
2025-03-06 21:00:23
576
1
原创 BUUCTF ciscn_2019_s_3复现
具体哪处栈中存放了栈地址就要用gdb调试了。①我们在mov那一块看到了call指令,这条指令的意思是调用r12+rbx*8处的指令,为了简化操作我们可以把rbx直接设成0,这样一来r12的值就很关键了,如果我们在前面往r12中pop一个地址,而这个地址刚好指向的是mov rax 3Bh,那岂不是在call这里就相当于执行了这条指令,从而把rax成功地设置成了59?注意这里的rax_59是mov rax 3Bh指令的栈地址,我们要在栈中部署它的地址,至于栈地址在哪(也就是往哪写入它的地址)后面会说。
2025-02-09 22:34:53
497
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人