【pwn】pwnable_start --只有read和write函数的getshell
首先查一下程序的保护情况
保护全关!!!
然后看ida逻辑
ida的结果很简洁,只有一段汇编代码,我们再来看看nc情况
现在我们来分析一下汇编代码
mov ecx, esp ; addr
.text:08048089 B2 14 mov dl, 14h ; len
.text:0804808B B3 01 mov bl, 1 ; fd
.text:0804808D B0 04 mov al, 4
.text:0804808F CD 80 int 80h ; LINUX - sys_write
.text:0804808F
.text:08048091 31 DB xor ebx, ebx
.text:08048093 B2 3C mov dl, 3Ch ; '<'
.text:08048095 B0 03 mov al, 3
.text:08048097 CD 80 int 80h ; LINUX -
.text:08048097
.text:08048099 83 C4 14 add esp, 14h
.text:0804809C C3 retn
这里就是用系统调用了read函数和write函数,然后看这个,写入地址都是esp,然后再根据add esp, 14h可以发现偏移是0x14
这里的我是考虑用shellcode打,但是我们得有一个地方写入shellcode,也就是说我们得知道写入shellcode的地址
一开始看这段汇编代码,其实并没有可以泄露栈地址的地方,我们动调看一下
可以发现返回地址下面有存着栈地址,我们可以将它泄露出来