[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)

所以我们读6161616b

[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)

偏移量是40,起飞


step5 exp搞起

整体思路:

一个全局变量一个main函数一个局部变量

两个get

第一个get把他覆盖到输入,栈的返回值覆盖到全局变量的入口处,第二个get输入我们的shellcode

注意选用全局变量存放shellcode,就要考虑是否有权限

[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)

[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)

exp理解:

程序是64位的,os是linux的,所以我们要告诉电脑

offset是40,我们上面cyclic求的

shellcode是自动生成的

grep可以找到buf2,这里我们用其他的方式来找ELF()+symbols[]

一个get的payload使我们指向buf2

第二个get利用shellcode来getshell

因为程序有交互,p.recvuntil(’: '),的意思就是直到程序输出的内容含有:+空格再继续向下发送信息

希望大家可以有所收获!!!


上一篇:Android获取其他包的Context实例然后干坏事


下一篇:最新研究:电脑病毒或可通过声音进行传播