ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FTZ 11번 Write-up
    표튜터와 함께하는 Pwnable/FTZ Write-up (11~20) 2019. 2. 4. 21:57


    혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다.


    (다른방법의 풀이도 올리겠습니다)

    밀린 Wrtie up을 쓰면서 정리를 하려고 합니다.


    FTZ 11번은 굉장히 쉽다.


    버퍼오버플로우의 기본적인 유형이다.


    우리가 알아야할 것은 어떻게 코드가 실행되냐라고 생각한다.


    본론을 말하자면 RET값을 덮어씌우는 것이 관건이다.


    오버플로우를 일으켜서 RET주소값만 바꿔주면 된다.


    소스코드를 보니 strcpy가 취약하다는 걸 알 수 있었다.


    길이가 지정되있지않기 때문에 공격자는 버퍼보다 큰 크기의 값을 argv[1]로 입력할 수 있었다.



    strcpy 부분에 breakpoint를 걸고 



    우선 a를 10개만 입력한 뒤 gdb로 확인해보았다.

    ret 주소 0x42015574의 위치가 보였다.

    저 주소 이전까지 특정 문자를 씌우고 ret주소를 쉘코드가 실행되는 주소를 덮어주면 

    다음단계로 갈 수 있다고 생각했다.

    버퍼 + sfp의 크기가 268이므로 그만큼 a로 덮어주었다.

    그리고 

    /bin/sh을 실행시켜주기위해서 eggshell을 사용하였다.



    파이썬을 이용하여 a와 eggshell로 부터 나온 주소를 넘겨주었다.




    eggshell이란??

    버퍼의 크기가 쉘코드의 크기보다 작아 쉘코드를 환경변수에 등록해놓고

    ret에 그 주소값을 넘겨주어 실행시킬 수 있게 해주는 프로그램을 의미한다.



    다음 권한이 넘어왔다~




    반응형

    '표튜터와 함께하는 Pwnable > FTZ Write-up (11~20)' 카테고리의 다른 글

    FTZ 16번 Write-up  (0) 2019.02.05
    FTZ 15번 Write-up  (0) 2019.02.05
    FTZ 14번 Write-up  (0) 2019.02.05
    FTZ 13번 Write-up  (0) 2019.02.05
    FTZ 12번 Write-up  (0) 2019.02.05

    댓글

Designed by Tistory.