Level3 문제 풀이
문제 파악
문제 분석
char* strcpy(const char*, const char*); //문자열 복사
char* strcat(char*, const char*); // 문자열 덧붙이기
cmd 변수에는 "dig @ argv[1] version.bin chaos txt" 복사 및 실행된다.
argv[1]을 통해서 임의의 명령 실행을 시도하고 패스워드를 찾아내는 문제다.
웹해킹의 command Injection과 동일한 공격.
dig 명령은 nslookup과 동일한 도메인의 IP 주소를 확인하는 명령으로 유닉스 계열 운영체제에 탑재되어 있다.
$ dig @ argv[1] version.bind chaos txt
dig [@server] [name] [query type]
- server 는 dns를 질의할 네임 서버를 지정하며 이 옵션을 지정하지 않으면 /etc/resolv.cof를 참조하여 질의한다.
- query type은 아래 중 하나가 올 수 있다.
a : network address
any : all query
mx : mail exchanger
soa : zone file의 SOA 정보
hinfo : host info
axfr : zone transfer
txt : txt 값
문제 해결
; 를 이용해 2개의 명령어를 구분시켜주고 argv[1]에 한 개의 문자열로 입력시키기 위해서 " "을 이용한다.
$ /bin/autodig "8.8.8.8; my-pass;"
/bin/autodig 디버깅
'Pwnable > Hackerschool FTZ' 카테고리의 다른 글
[FTZ] 06. Level5 - Race condition (0) | 2018.07.27 |
---|---|
[FTZ] 05. Level4 - xinetd backdoor (0) | 2018.07.25 |
[FTZ] 03. Level2 - Editor Shell Command (0) | 2018.07.25 |
[FTZ] 02. Level1 - Backdoor 찾기 (0) | 2018.07.20 |
[FTZ] 01. 해커스쿨 FTZ Training 요약 (0) | 2018.07.20 |