[HackCTF] Look at me

2021. 8. 16. 17:33·WriteUP

이번에 풀어볼 문제는 hackctf의 lookatme라는 문제이다 일단 제목으로는 추측이 안된다!!

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

해당 프로그램을 실행시키면 hellooooooooooo라는 문자열과 특정 값을 입력받을 수 있도록 되어있다.

흠 일단 적용되어있는 메모리보호기법을 확인해보았다.

nx가 걸려있는것으로 보아 쉘 코드는 실행이 되지 않을 것 같다.

 해당 프로그램을 IDA를통해 좀 더 상세히 분석해보았다.

 

main함수에서는 해당 문제의 이름과같은 look_at_me 함수를 호출하고 해당 함수로 들어가 보면

puts로 문자열을 출력하고 gets로 문자열을 입력받는다 이 부분에서 bof가 일어난다

여기서 이상한 점을 발견했다 

해당 프로그램에 함수가 굉장히 많이 있었다 여기서 이상한점을 느끼고 해당 파일을 확인했더니

역시나 dynamic linked방식이 아닌 static linked방식으로 되어있다 이 방식은 프로그램 내부에 모든 함수가 저장되어 있다 이를 통해 sysyem 함수와 binsh를 실행시키면 될 것이다. 방법은 mprotect함수를 이용한 rop를 사용하면 된다.

이 함수는 원하는 역역의 권한을 변경시켜줄 수 있다 

bss영역을 찾아 해당 영역에 쉘 코드를 입력한 후 권한을 주어 실행시킬 수 있다.

이는 nx가 걸려있어도 쉘코드 실행이 가능하다.

우리가 찾아야 할 것은

1. gets의 주소

2. bss역역의 주소 (쉘 코드를 입력할)

3. bss영역의 시작 주소 (권한을 줘야 하기 때문)

4. pr 가젯

5. pppr 가젯

6. 쉘 코드

7. mprotect의 주소

 

해당 함수의 주소들을 구하고

가젯들을 구한 후

bss영역 까지 구해야 할 것들을 모두 구했다

 

그리고 우리가 입력받는 값의 위치부터 ret까지의 거리 또한 구해야 한다

0x18 즉 24 +sfp4까지 총 28바이트의 더미 값이 필요하다.

 

이제 해당 익스 코드는 아래와 같다

쉘 코드는 25비트 쉘 코드를 사용하였다

28바이트의 더미 값을 넣어 ret까지 접근하여 gets 함수를 호출하여 bss영역에 쉘 코드를 삽입하고 pr가젯을 이용하여 돌아갈 함수의 주소를 mprotect로 설정하여 mprotect를 실행 그후 bss시작주소를 넣는다 시작주소를 넣는 이유는 첫번째 인자값이 친자로 쓰일 주소의 값이 1000의 배수가 되어야 하기 때문이다. 그 후 값을 넣고 7은 rwx 의 권한이다.

그 후 pppr가젯을 이용하여 최종적으로 bss영역에 있는 쉘코드를 실행시킨다. ( 코드를 좀 더 이쁘게 짜야겠다..)

해당 코드를 실행시키면 성공적으로 쉘을 획득할 수 있었다.

 

'WriteUP' 카테고리의 다른 글

[HackCTF] ROP  (0) 2021.08.16
[HackCTF] gift  (0) 2021.08.16
[프로토스타] protostar - heap2  (0) 2021.08.16
[HackCTF] Beginner_Heap  (0) 2021.08.10
[프로토스타] prostar - heap1  (0) 2021.08.10
'WriteUP' 카테고리의 다른 글
  • [HackCTF] ROP
  • [HackCTF] gift
  • [프로토스타] protostar - heap2
  • [HackCTF] Beginner_Heap
g2h
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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g2h
[HackCTF] Look at me

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.