forelength

2023. 3. 26. 18:22

http://localhost:5005/

초기 화면에 있는 문장을 읽어보면 /source를 확인해 보라고 한다.

 

 

http://localhost:5005/source

그래서 url에 /source를 넣어서 소스 코드를 확인해 주었다.

코드들을 쭉 보다 보니 전에 풀었던 pingservice와 매우 유사한 문제 같았다.

 

 

pingservice와 동일하게 가장 중요한 부분인 /execute를 확인해 보았다.

매우 똑같지만 이번에는 ip가 아닌 cmd를 이용하는 문제였다.

그래서 동일한 방식으로 접근해 보기로 했다.

 

 

http://localhost:5005/execute?cmd=ls

가장 먼저 ls 명령어를 이용하여 디텍토리에 flag가 있는지 확인하려고 하였으나 아무것도 보이지 않았다...

현재 디렉토리에는 아무것도 없다는 뜻이므로 루트 디렉토리에 있는 파일 목록들을 출력해 보기로 하였다.

 

 

http://localhost:5005/execute?cmd=ls%20/

루트 디렉토리를 확인해보니 flag가 있는 것을 확인하였다.

그래서 간단하게 cat flag라는 명령어를 사용하여 flag 안에 있는 내용을 출력해 보았다.

 

 

http://localhost:5005/execute?cmd=cat%20flag

cat flag 명령어를 사용해 주니 flag의 내용이 나오는 것이 아니라 no hack ^__________^이 나왔다.

당연히 나올 줄 알았는데 안 나와서 당황하면서 다시 소스 코드를 확인했다.

 

 

 

확인해보니 5글자 이상은 입력할 수 없었다는 것을 알 수 있었다.

그럼 어떻게 5글자 이하로 flag를 볼 수 있을까 고민해보았다.

그러다가 예전에 공부했던 와일드카드를 생각해냈다.

와일드카드의 특징을 이용한다면 짧은 글자 수로 flag를 확인할 수 있지 않을까라는 생각이 들었다.

2023.03.15 - [Web - 이론] - Linux WildCard

 

 

와일드카드 예시(학교 실습 사이트 이용)

리눅스 와일드카드를 어떻게 이용해야 할지 고민하면서 공부하다 보니 알게 된 것이 있다.

'*'라는 와일드 카드는 일치되는 모든 문자열을 찾는 역할을 하는데, 그냥 *만 입력할 시 이전 명령어가 실행되는 것을 확인할 수 있었다. 

이를 바로 적용시켜보았다.

 

 

 

학교 실습 사이트

파일 내용을 출력해 주는 cat 명령어를 이용하여 명령어를 구성해 보았다.

바로 url에 넣어보기 전에 다른 곳에서 미리 해당 명령어가 잘 동작하는지 테스트해 보았다.

이후 가능하다는 것을 확인하여 url에 넣어보았다.

 

 

http://localhost:5005/execute?cmd=%3Ecat

가장 먼저 cat 명령어를 표준 출력을 이용하여 현재 디렉토리에 저장해주었다.

(표준 출력 리다이렉션 이용)

 

 

저장하고 ls 명령어를 실행시켜보면 아무것도 없었던 현재 디렉토리에 cat 저장된 것을 확인할 수 있다.

 

 

http://localhost:5005/execute?cmd=*%20/*

루트 디렉토리에 flag가 있는 것을 이미 알았기 때문에 루트 디렉토리에 있는 모든 것을 출력하기 위해 cat /*라는 명령어를 생각하였지만, 글자 수 제한에 걸린다.

그렇기 때문에 아까 위에서 와일드카드를 공부하면서 발견한 특성을 사용하여  cat /*를 * /*로 바꿔주었다.

url에 넣어보았더니 flag를 볼 수 있었다.

성공!

 

seKUCTF{!@N3w_fAC3_@f_W1LD_CArD__!@}

'Web - 실습' 카테고리의 다른 글

forcelogin 2  (0) 2023.04.05
forcelogin 1  (0) 2023.04.02
pingservice  (0) 2023.03.21
HelloCTF  (0) 2023.03.19
NewAPI  (0) 2023.03.15

BELATED ARTICLES

more