일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 네트워크관리사2급
- html
- slack space
- 윈도우 프로세스
- 디지털포렌식 with CTF
- 24시간의 전사
- 윈도우 프로세스 종류
- memory
- Multimeida
- 정보처리기사 필기 합격
- 2022시작
- ftz
- network
- blkls
- 포렌식
- N0Named
- 생활코딩
- ZIP 파일구조
- 실기
- pythonchallenge
- 생활코딩 html
- 는 하지마...
- Window process
- 슬퍼유
- vinetto
- disk
- 네트워크 보안
- Multimedia
- CTF-D
- 디지털포렌식
Archives
- Today
- Total
ssoL2 TISTORY
[FTZ] LEVEL12 풀이 본문
level12 / it is like this
hint를 보니 LEVEL 11과 매우 유사한 문제이다. LEVEL 11에선 strcpy bof였다면 이 문제는 gets bof 문제이다.
LEVEL 11 했던 것처럼 RTL 기법으로 풀어봅시다.
gdb로 gets 인자로 사용한 STR 변수 위치 알아봤더니 EBP-264입니다.
buffer(264) + ebp(4) + system주소 + nop(4) + /bin/sh주소 구조로 exploit 작성할 것이다.
필요한 system 주소와 /bin/sh 주소를 알아봅시다.
ldd 명령어로 라이브러리 획득
해당 라이브러리에서 system 주소(\x4203f2c0)와 /bin/sh 주소(\x42127ea4) 획득
(이때 /bin/sh 주소 앞에 \x42 생략됨)
(-> 자세한 내용은 LEVEL11 풀이에서 확인 가능)
구상했던 payload로 exploit 작성해서 실행했더니 level13 권한 획득 성공, 해결 완료 !!!
참고로, level11과 다른 payload임
payload 작성 방법에는 argv와 stdin 방법 두 가지가 존재한다.
level11에서는 "인자"로 str 변수에 넣어서 [실행파일주소 `python -c 'print ~~~'`] 구조 형식이었지만
level12에서는 "stdin"으로 실행파일이 시작되고 나서 입력하므로 [(python -c 'print ~~~';cat) | 실행파일주소] 이다.
'challenge > pwn' 카테고리의 다른 글
[FTZ] LEVEL 14 풀이 (0) | 2021.02.01 |
---|---|
[FTZ] LEVEL13 풀이 (0) | 2021.02.01 |
[FTZ] LEVEL 11 완벽분석 (1) | 2021.02.01 |
[FTZ] LEVEL 10 풀이 (0) | 2021.01.29 |
[FTZ] LEVEL 9 완벽 분석 (0) | 2021.01.28 |
Comments