rtl_world

2021. 5. 28. 22:54·WriteUP

HcakCTF rtl_world문제

이번 문제도 IDA를 안 쓰고 풀고 싶었지만 이번 문제는 IDA를 써서 풀게 됐다.

일단 해당 프로그램에 메모리 보호 기법이 어떻게 적용되어있는지 확인했다.

적용된 메모리보호기법

NX가 걸려있는 걸 확인했다. 그렇다는 건 쉘 코드를 삽입해서 풀 수 없을 거 같다 그럼 시스템 함수를 실행시켜야 한다. 제목에 나와있듯이 RTL이라는 기법을 사용하여야 한다.

 

일단 프로그램이 어떻게 동작하는지 확인해보자.

해당 프로그램을 보면 2번을 통해 돈을 벌고 3,4번에서 시스템 함수와 빈 쉘의 문자열을 찾을 수 있고 5번을 통해 우리가 원하는 입력값을 받을 수 있다. 2번에서 4번은 히든 번호?로 수많은 돈을 획득할 수 있다 이것은 IDA를 통해 찾았다.

히든 번호를 IDA로 찾는 모습

또한 프로그램에서 2,3번에 해당하는 시스템 함수의 주소와 /bin/sh의 주소가 다르게 나오는 거 같았다..

그래서 시스템 함수의 주소는 gdb를 통해 획득했다.

/gdb 에서 info func를 통해 시스템함수의 주소를 알아냄

/bin/sh주소는 gdb에서 pada를 사용하면 찾을 수 있지만 나는 IDA를 통해 알아냈다.

빨간 창 부분을 더블클릭

이렇게 시스템함수의 주소와 /bin/sh의 주소를 알아냈으니 이제 거리 값을 구해 코드를 작성하면 된다.

일단 거리를 구하기 위해 gdb를 열어 확인하면

저기 빨갛게 네모 친 곳이 우리가 5번에서 입력하면 저장되는 버퍼의 주소 같다. 그럼 이제 거리를 구해보자

5번을 선택 후 메모리값이 맞는지 확인하기 위해 AAAA를 입력

제대로 찾은 거 같다 41이라는 값이 제대로 들어가 있다. 그럼 이제 저기서부터 ebp까지의 거리를 확인하였을 때 140이 나온다.

그럼 거리, 시스템 함수의 주소, /bin/sh의 주소를 모두 알아냈다. 이제 코드를 작성하면 된다

dummy(140)+sfp(4)+ret(system())+dymmy(4)+("/bin/sh") 이렇게 작성하면 될 거 같다. 시스템 함수 뒤에 더미를 넣는 이유는 RTL정리에서 확인해보자!

 

그럼 이제 공격코드를 작성하러 가자

해당 코드는 시스템 함수의 주소와 "/bin/sh"의 주소를 담아놓은 변수를 만들고 sendline로 프로그램을 실행시켰을 때 우리가 입력값을 전달할 수 있는 5번을 누른 후 recvuntil을 통해 [Attack] >라는 문자열이 나올 때까지 문자열을 출력되면 

그 후 pauload로 \x90*144+system() 주소+\x90*4+/bin/sh"주소를 넣었다. 이제 제대로 공격이 되는지 확인해보자!!!

성공!!!!!!! 적으로 문제를 해결했다 이문제를 풀면서 헷갈리는 부분이 많았다.. 더욱 찾아봐야겠다.

'WriteUP' 카테고리의 다른 글

basic_fsb  (0) 2021.07.21
rtl_core  (0) 2021.07.21
offset  (0) 2021.05.26
Simple_overflow_bof_ver_2  (0) 2021.05.21
Simple_size_bof  (0) 2021.05.21
'WriteUP' 카테고리의 다른 글
  • basic_fsb
  • rtl_core
  • offset
  • Simple_overflow_bof_ver_2
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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g2h
rtl_world
상단으로

티스토리툴바