일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- disk
- 윈도우 프로세스 종류
- 디지털포렌식
- 포렌식
- 생활코딩 html
- 윈도우 프로세스
- Window process
- 24시간의 전사
- 는 하지마...
- ZIP 파일구조
- Multimeida
- 디지털포렌식 with CTF
- pythonchallenge
- 슬퍼유
- ftz
- memory
- vinetto
- network
- 네트워크관리사2급
- 실기
- blkls
- 정보처리기사 필기 합격
- CTF-D
- 2022시작
- Multimedia
- html
- N0Named
- 네트워크 보안
- 생활코딩
- slack space
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