일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C알고리즘
- 파이썬
- 보안
- 버퍼오버플로우
- 항등함수
- 활성화함수파이썬
- BOJ
- C언어알고리즘
- 백준알고리즘
- 백준
- c언어
- 8086CPU레지스터
- 딥러닝파이썬
- 스트림암호
- 머신러닝
- BOF
- 밑바닥부터시작하는딥러닝
- 파이썬신경망
- 신경망구현
- C언어 알고리즘
- 알고리즘
- 신경망 학습
- 달고나bof
- 신경망
- FTZlevel10
- 소프트맥스함수
- 인공지능
- 딥러닝
- 정보보안
- 신경망파이썬
- Today
- Total
HeeJ's
[03] hackerschool FTZ :: level3 본문
level2에서 얻은 password로 level3에 접속해주었다.
ls 명령어로 디렉터리 확인
cat 명령어로 hint를 확인해주었다.
1. autodig라는 프로그램의 소스
2. 동시에 여러 명령어를 사용하는 방법과 문자열 형태로 명령어를 전달하기 위한 방법?
우선 level4의 setuid권한이 있는 파일을 찾아주었다.
일단 autodig를 실행시켜보았다.
autodig의 사용법만 나오고 에러는 뜨지 않는다.
./autodig 호스트명 을 입력하면 되는 것 같다.
소스코드를 살펴보면
argc는 인자의 개수, argv는 인자를 뜻한다.
if문에서 argc!=2라는 조건이 있고, 그 내부에 exit(0)이 있는 것을 보면,
인자의 개수가 2개라고 생각할 수 있는데,
autodig 프로그램을 실행시킨다면, autodig 자체가 첫번째 인자가 되기 때문에
인자가 1개가 들어가게 된다.
그리고 이제 more hint 부분을 보면,
동시에 여러 명령어를 사용하려면?
리눅스에서 동시에 여러 명령을 사용하기 위해서는 세미콜론(;)을 이용하면 된다.
원하는 명령들 사이에 세미콜론(;)을 넣어주면 한 번에 여러 가지 명령을 실행할 수 있다.
level4의 권한에서 my-pass를 실행시켜주기 위해서는
호스트명;my-pass를 입력해주면 될 것이다.
그랬더니 level3의 password가 나왔다.
세미콜론(;)을 사용하게 되면, autodig host를 실행하고, my-pass가 level3의 권한에서 실행된 것이다.
호스트명과 my-pass를 한 번에 autodig의 인자로 전달하는 방법은??
두 가지를 하나의 문자열로서 전달하는 것이다.
하나의 문자열로 전달하기 위해서는 따옴표(")안에 세미콜론을 이용한 명령어를 넣어주면 된다.
이렇게 level4의 패스워드를 찾을 수 있다.
'<CTF> > <HackerSchool FTZ>' 카테고리의 다른 글
[06] hackerschool FTZ :: level6 (0) | 2020.08.01 |
---|---|
[05] hackerschool FTZ :: level5 (0) | 2020.08.01 |
[04] hackerschool FTZ :: level4 (0) | 2020.07.25 |
[02] hackerschool FTZ :: level2 (0) | 2020.07.23 |
[01] hackerschool FTZ :: level1 (0) | 2020.07.23 |