일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리버싱 기초
- Burp Suite Intruder
- 해커팩토리 10번
- 포렌식
- 파일 다운로드 취약점
- 로그 분석
- 웹 해킹
- ftz
- 해커 팩토리 6번
- union sql injection
- 해커팩토리 8번
- 해커팩토리 7번
- SQL Injection
- 디스크 포렌식
- 시스템 해킹
- SANS
- 웹해킹 실습
- 게시판 만들기
- Burp Suite
- 네트워크 포렌식
- Blind Sql Injection
- 테이블명 수집
- 보안
- CTF-d
- python flask
- 리버싱
- 레나 튜토리얼
- 해커팩토리
- 부트스트랩
- 해커 팩토리
- Today
- Total
Cha4SEr Security Study
[FTZ-Level3] 풀이 본문
ID : level3
PW : can you fly?
힌트 파일을 보는 방법은 1,2번 문제와 동일하기 때문에 생략하고 바로 힌트파일을 보겠따.
C언어로 짜여진 프로그램 코드를 보여준다. 이를 해석해보면
- 인자가 2개가 아니면 if문이 실행되면서 "Auto Digger ~~~" 라는 문자열을 출력한 후 종료한다.
- 인자가 2개면 "dig @ " + 입력한 인자 + " version ~~"가 출력된다.
이를 이용하여 level4의 권한을 얻어야 하고 추가적으로
- 동시에 여러 명령어를 사용
- 문자열 형태로 명령어를 전달
이라는 힌트가 있다. 일단은 이정도로만 파악하고 1,2번 처럼 level4의 SetUID가 걸린 파일을 찾아보자.
힌트에 주어진 것과 같이 /bin 디렉토리에 autodig라는 파일이 있다. 이제 이 파일을 실행시켜 보쟝
인자를 주었을 때와 안주었을 때의 출력이 다른 것을 확인할 수 있다.
이쯤에서 힌트를 다시 보자
- 동시에 여러 명령어를 사용
- 문자열 형태로 명령어를 전달
autidig 파일은 level4의 SetUID가 걸려있기 때문에 해당 파일을 실행하는 동안은 level4의 권한을
얻은 상태이다. 따라서 autodig를 실행하는 명령어와 my-pass 명령어를 동시에 실행시키면 되지않을까?
명령어를 동시에 하는 방법은 명령어 뒤에 ";"를 붙이는 것이다.
예를들어 "ls;ls" 라고 하면 ls 명령이 동시에 두번이 실행된다.
자 그럼 이것을 문제에 적용시켜 보자
autodig 파일을 실행시키는 명령어와 비밀번호를 출력하는 명령어를 동시에 실행시키면 된다.
즉, autodig의 SetUID 덕분에 일시적으로 level4의 권한을 가졌을 이때,
my-pass 명령어로 level4의 비밀번호를 획득하는 것이다. 한번 해보쟝
당당하게 ./autodig aaa;my-pass 를 입력해보자!
잉.. 생각과는 다르게 level3의 비밀번호가 나왔따..
추측해보면 위의 방식대로 입력한 경우 ./autodig aa를 한 후 level4의 권한을 가진 상태로
my-pass가 실행되는 것이 아닌, 명령을 끝내고 다시 level3로 돌아온 후에 my-pass가 실행되는것 같다.
여기서 놓치고간 남은 힌트 하나를 보자
- 문자열 형태로 명령어를 전달
그럼 위의 인자와 명령어를 문자열 형태로 전달하면 되겠따!
바로 실행해보도록 하자
문자열 형태로 명령어를 전달하려면 양쪽끝에 큰 따옴표 "를 붙여주면 된다.
-> ./autodig "aaa;my-pass"
성공했다!
위와 같은 방식으로 입력을 하게되면 autodig 파일 실행 시
dig @ aaa;my-pass version.~~~ 와 같이 실행이 되며 세미콜론을 기준으로 뒤의 my-pass가 실행되면서
뒤에 version~~는 무시되고 my-pass만 실행된다.
★ 요약 ★
- 동시에 여러 명령어 사용
-> 세미콜론 사용 (Ex. ls;ls)
- 문자열 형태로 명령어 전달
-> 큰 따옴표 사용 (Ex. "./autodig; my-pass")
이로써 FTZ Level3를 다 풀었따!
'System > FTZ' 카테고리의 다른 글
[FTZ-Level6] 풀이 (0) | 2019.12.28 |
---|---|
[FTZ-Level5] 풀이 (1) | 2019.12.26 |
[FTZ-Level4] 풀이 (0) | 2019.12.23 |
[FTZ-Level2] 풀이 (1) | 2019.12.22 |
[FTZ-Level1] 풀이 (0) | 2019.12.22 |