HO_9
HO9
HO_9
전체 방문자
오늘
어제
  • 분류 전체보기 (104)
    • Write Up (3)
    • WarGame (21)
      • The Lord of Bufferoverflow(.. (7)
      • The Lord of Sql Injection(L.. (1)
      • Pwnable.kr (1)
      • Pwnable.tw (0)
      • XSS GAME (6)
      • Pwnable.xyz (5)
    • SYSTEM HACKING (49)
      • 기법 (24)
      • 문제 풀이 (24)
    • CODING (2)
      • PYTHON (2)
    • WEB HACKING (1)
    • Plan (0)
    • PROJECT (0)
    • iOS (6)
    • ALGORITHM (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • .

인기 글

태그

  • 취약점
  • JNDI
  • log4j
  • 아파치

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HO_9

HO9

Plaid CTF 2018 - EBP
SYSTEM HACKING/문제 풀이

Plaid CTF 2018 - EBP

2018. 1. 5. 19:10
728x90

Plaid CTF의 EBP문제를 풀어보겠다.

ebp_a96f7231ab81e1b0d7fe24d660def25a.elf


일단 파일을 실행을 시켜보자.

파일을 실행시켜서 값을 주니 입력한 값이 그대로 나오는 echo프로그램인 것 같다.



그러면 이번에는 ida로 까서 어느 곳이 취약한지 찾아보자.



일단 main함수를 보면 fgets을 이용해서 값을 받은 후 echo함수로 들어가게 된다.

echo함수를 보면 make_response라는 함수가 있다.

들어가서 확인을 해보니 buf에 있는 값을 response로 복사(?)를 해준다.

그 후 puts를 이용해서 response를 출력을 해주는데 이곳에서 취약점이 발생한다.

포맷 스트링 버그(FSB)가 발생하는 것이다.

정말로 포맷 스트링 버그가 일어나는지 확인해 보자.



정말로 포맷스트링버그가 일어난다.

그럼 gdb로 열어서 저 주소가 어디인지 정확히 파악을 하자.

브레이크 포인트를 snprintf의 실행 전,후에 걸고

echo의 실행 후에 한번 더 걸어주겠다.

그리고 실행을 해준 후 값을 %x.%x.%x.%x.%x을 줘보겠다.



snprintf에 인자로 %x가 잘들어가 있다.

그럼 c로 실행을 한 후 esp를 확인을 해서 정말로 값을 출력해주는지 확인하자.



값을 출력해주는 것을 볼 수 있다.

그럼 이제 DSFSB를 이용해서 Got Overwrite를 하겠다.

DSFSB는 2018/01/01 - [SYSTEM HACKING/기법] - Special Chapter-Double Stage Format String Bug를 참조하길!


buf에 쉘코드를 넣어준 다음 puts의 Got를 buf의 주소로 Overwrite해서 쉘을 따내보자.

그러기 위해서는 puts의 Got와 buf의 주소를 구해줘야한다.


nm을 통해서 buf의 주소를 구하고



gdb를 통해서 puts의 got를 구하였다.

그럼 익스플로잇 코드를 짜보자.


한번 실행을 해보자

실행을 하면 아마도 실행이 되지 않을 것이다..

core파일을 확인해보자.



eip가 우리가 원하지 않는 곳에 가있다....

확인을 해보자...



우리가 넣어준 NOP의 값이 뒤로 밀려난 것을 볼 수 있다.

그럼 문제점을 찾았으니 익스플로잇 코드를 수정해서 실행해 보자.



buf의 주소를 쉘코드가 있는 주소로 바꿔준 다음에 실행을 하니 쉘이 따졌다.



푸는데 조금 힘들었는데 그래도 쉘을 따고내니 엄청난 보람을 느꼈다!!

꾸준히 한문제씩 풀어서 올려야겠다!

'SYSTEM HACKING > 문제 풀이' 카테고리의 다른 글

2014 Codegate -nuclear  (0) 2018.01.10
2014 Codegate -Angry_Doraemon  (0) 2018.01.08
Backdoor CTF-2015 forgot문제  (0) 2018.01.04
[ROP 문제]2013 Pico ctf rop-4  (0) 2017.12.20
[ROP 문제]2013 Pico ctf rop-3  (0) 2017.12.18
    'SYSTEM HACKING/문제 풀이' 카테고리의 다른 글
    • 2014 Codegate -nuclear
    • 2014 Codegate -Angry_Doraemon
    • Backdoor CTF-2015 forgot문제
    • [ROP 문제]2013 Pico ctf rop-4
    HO_9
    HO_9

    티스토리툴바