[HackCTF] Beginner_Heap

2021. 8. 10. 23:26·WriteUP

이번에 풀어 볼 문제는 hackctf의 beginner_heap문제이다

제목에서부터 유추 가능하듯 heap관련 문제인 거 같다

일단 해당 프로그램을 실행시켜보았다.

문자열을 두 번 입력받을 수 있도록 되어있고 따로 출력되는 문자열은 없다.

이번엔 적용된 메모리 보호 기법을 확인해보았다.

음 NX만 걸려있는걸로보아 쉘코드는 실행이 안될것이고

이상하게도 어떠한 오류인지 해당 프로그램을 gdb로 까봤을때 main함수부분이 나오지않아

IDA로 모두 해결했다

우선 해당 프로그램의 코드는 아래와 같다.

V3변수에0X10 즉 16크기만큼의 메모리를 할당하고 V3에 1을 넣고

그 후 V3+1에 8크기만큼의 메모리할당 V4와 V4+1 에도 똑같이 메모리를 할당한다 총 4개의 동적메모리를 할당한다.

그 후 fgets를 통해 s변수에 4096만큼의 큰 값을 입력받는다 이부분에서 bof가 일어나는 듯 하다.

s변수에 특정값을 입력받고 strcpy를 통해 v3+1에 복사한다 이와같이 V4와 V4+1도 같은 동작을 한다.

 

main함수를 제외한 특이한 함수가 4개가 존재한다.

여기서 우리가 봐야할 것은 sub_400826함수이다 이 함수가 flag를 알려주는 함수인 거 같다.

 

 

현제 힙영역의 구조는

[낮은주소] V3 V3+1 V4 V4+1[높은주소] 이렇게 되어있을것이다. 하지만 우리는 V3+1 부분에서 BOF일어날 것이고

heap의 구조는 v3(16+8) v3+1(8+8) 이런식으로 헤더의크기 8이 붙을것이다.

그렇다면 이번문제에서는 GOT Overwrite를 이용하면 될 것이다.

v3에서부터 v4까지의 거리를 더미값으로 채운 후 v4+1에 exit함수의 got주소를 넣는다 그 후 마지막 fgets와 strcpy를 통해 sub_400826함수의 주소값을 넣으면 될 것이다.

v4+1 까지의 거리는 40 이므로

더미값*40 + exit_got 를 입력 후 그 후 두번째 입력값으로 sub_400826의 주소를 넣으면 된다.

 

해당소스코드는 위와 같이 작성하였다 이를 실행시켜보면

성공적으로 플래그를 획득 할 수 있었다.

'WriteUP' 카테고리의 다른 글

[HackCTF] Look at me  (0) 2021.08.16
[프로토스타] protostar - heap2  (0) 2021.08.16
[프로토스타] prostar - heap1  (0) 2021.08.10
[프로토스타] protostar - heap0  (0) 2021.08.10
[HackCTF] random  (0) 2021.08.09
'WriteUP' 카테고리의 다른 글
  • [HackCTF] Look at me
  • [프로토스타] protostar - heap2
  • [프로토스타] prostar - heap1
  • [프로토스타] protostar - heap0
g2h
g2h
  • g2h
    감자 텃밭
    g2h
  • 전체
    오늘
    어제
    • 분류 전체보기 (144)
      • Network (4)
      • Web (31)
        • Web Hacking Techniques (31)
      • System (32)
        • Tips (11)
        • System Hacking Techniques (21)
      • Pentest (14)
        • Pentest (14)
      • WriteUP (47)
        • sec (0)
      • 도구|Tools (12)
      • Security Issue (3)
      • 1-Day-Analysis (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Hacking
    Metasploit
    Los
    sql
    스캐닝
    Encoding
    해킹도구
    NOSQL
    내부침투
    해킹툴
    CTF
    vulnability
    Reflected XSS
    SQL Injection
    취약점
    DoM
    load of sqlinjection
    모의해킹
    Kioptrix
    침투테스트
    권한상승
    스캔
    취약점 스캔
    web hacking
    해킹
    skt 해킹
    nosql injection
    dom based xss
    cross side script
    XSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g2h
[HackCTF] Beginner_Heap
상단으로

티스토리툴바