본문 바로가기

시스템 해킹 (Pwnable)/해커스쿨 FTZ

[해커스쿨 FTZ] 해커스쿨 FTZ Level 3 풀이

728x90
반응형

이번에는 해커스쿨 FTZ의 Level 3를 풀어보겠습니다.

 

find 명령어로 파일을 찾고 실행해봅니다.

 

사용법을 알려주는데 아직 이해가 되지 않습니다. 힌트를 보겠습니다.

 

autodig의 소스 코드를 보여줍니다. 

 

system() 명령어를 활용하여 명령어를 사용하는 문제 같습니다.

 

코드를 보니 cmd 배열에 argv[1]을 넣어줘서 실행합니다. argc는 2가 되어야 오류가 나지 않습니다.

 

argc와 argv에 대한 이해가 되지 않으시면 구글에 "c언어 command line arguments"로 검색해 보시길 바랍니다.

 

more hints.를 보면 명령어를 동시에, 문자열 형태로 전달해야 합니다.

 

/bin/bash로 접근하여, my-pass 명령어를 사용해야 하므로 동시에 사용하고, system 함수는 string형을 전달받으므로 위와 같은 힌트들을 주나 봅니다.

 

리눅스에서 다중 명령어 처리는 ; (세미콜론)으로 가능합니다. 문자열 표현은 "" (큰따옴표)로 묶어주면 됩니다.

 

argv[1]을 "/bin/bash; my-pass"로 전달하면 될 것 같습니다.

 

password를 구할 수 있습니다.

 

이번 문제는 C언어 기본 문법과 C언어 command line arguments에 대한 이해가 있어야 해결할 수 있었습니다.

728x90
반응형