본문 바로가기

Pwnable/Hackerschool FTZ

[FTZ] 04. Level3 - system() 취약점


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 디버깅