ROP-Ret2Shellcode-64位实例
/usr/include/x86_64-linux-gnu/asm/unisted_64.h
编写64位shellcode,思路和32位是一样的
(1)想办法调用execve("/bin/sh",null,null)
(2)借助栈来传入字符串/bin/sh
(3)系统调用execve
rax = 0x3b(64bit)
rdi = bin_sh_addr
rsi = 0
rdx = 0
实例代码如下:
setvbuf函数的作用是优化io流,在服务器上时,或者是比赛时,一般都会有这个函数。
我们还发现了最重要的切入点 get()
我的大刀已经饥渴难耐了
实例开始
step1 检查保护
step2 查看buf2
step3 查601080的段是否可执行
我们利用vmmap看看601080
rwxp权限,可以执行
step4 计算偏移
cyclic 300
cyclic -l +异常地址
但是pwndbg只能读四字节的