menu_input 함수에서 <=0xb 꼴로 필터링 하는데, 이때 0 이 필터링 되지 않는다.
그래서 0번 메뉴를 선택하게 되면, sscanf의 두번째 인자가, 처음에 입력하는 이름이 들어가게 된다.
이를 이용해서 format string attack을 진행해 주면 되는데, 일반적인 %n 을 쓰는것 보다,
%123123$d 꼴로 %d를 이용해 진행해 주면, 스택상 포인터 안에 임의쓰기가 가능해 진다.
이렇게 진행하는게 훨씬 편하다 (grin)~
그래서 data를 flag 주소로 바꾸고 8글자씩 읽어오면 덴다
'Pwnable' 카테고리의 다른 글
strncmp (0) | 2018.04.14 |
---|---|
61byte reverse shellcode (0) | 2018.04.11 |
[SwampCTF 2018] (0) | 2018.04.01 |
[Securients 2018] (0) | 2018.03.26 |
[angstrom2018] hellcode (0) | 2018.03.22 |