본문 바로가기

CTF/picoCTF

echooo

echo.c


포인트

format String Bug


*format String Bug에 자세한 건 따로 정리한 글 참고


printf를 호출하기 직전 스택상태

* flag.txt는 임의로 만들었다.


정답 1. %s이용

알다시피 "%s"는 문자열의 주소를 참조하는 포맷이기 때문에

flag문자열의 시작주소를 찾으면 된다.

 

스택을 확인해보면

esp에서 8번째 뒤에 있다.

"%8$s" 입력


정답 2. %x이용

%x는 4byte씩 16진수 출력

esp에서 27번째 뒤에 flag문자열이 있다.


 "%x "를 27번 입력하면 번거롭고 buf길이(=64byte)를 초과하기 때문에

"%27$x"부터 '}'의 16진수인 7d 까지 출력해서 확인





'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
bof2  (0) 2018.11.07