遇见一题python脚本的 格式化字符串相关漏洞程序,大致思路是泄露libc地址后得到system地址后覆盖返回地址。想知道这种程序payload该怎么写,如何确认要覆盖的返回地址?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
hypersine 你可以用gdb调试python脚本,先断在libc的printf,观察下栈上的数据哪些和当前的rsp寄存器值有固定差值(一般这些数据都是前一个函数压入的栈帧rbp),这样就可以根据printf泄漏的数 ...
astonecutter 对的对的,是这个思路,所以是在第二次read环节覆盖main 的返回地址么
hypersine 想覆盖哪里就自己决定了咯,要我的话应该会选read的返回地址,毕竟往栈底走那是python的栈布局,不太好控制
注意调整下pwn.ELF那里libc.so.6文件的路径,指向你附件里的libc.so.6就行。还有pwn.remote那里,注意改成题目的host和port。
hypersine 注意调整下pwn.ELF那里libc.so.6文件的路径,指向你附件里的libc.so.6就行。还有pwn.remote那里,注意改成题目的host和port。
astonecutter 大佬,我调通了你的代码,但是我不太理解1.覆盖的read_rsp的地址是怎么计算的。2.我学习的时候都是根据rbp➕8 确定返回地址的,覆盖这个地址read_rsp是怎么被读取到rip执行的
hypersine 1. 代码里不是很清楚了吗,read_rsp = printf_rsp - 0x60 read_rsp是表示到达libc.so read函数时(即rip指向read函数第一条指令时)的rsp,pri ...