Wargame/BeeBox

Beebox[OS Command Injection]

D4tai1 2021. 3. 29.

Command Injection : OS명령어를 입력하여 내부정보 유출 및 악의적인 행위를 수행(매우심각)


 1. LOW 

(1) 입력

[그림1] dns 조회페이지

 

해당 입력창에 도메인을 입력하면 

nslookup을 실행해주네요

 


아마 서버로 접근하는 포트는 막혀있을 것이니..

내 PC에서 포트를 열어놓고 서버에서 접근하도록 하는 것이 좋겠죠?

 

그러면 

 

nc -l -p 1234

▶ 내 PC에서 위와 같이 입력해주세요

넷캣의 -l은 리스닝모드이고, -p 다음에는 오픈할 포트를 적어주세요 

 

[그림2] 내 PC에서 1234포트열고 대기중

 보통 칼리를 많이 쓰지만 저는 우분투를 사용했어요

서버에서는 내 PC의 IP를 입력해서 접속하려고 합니다.


(2) 공격

 

[그림3] Command Injection

-e /bin/bash 옵션은 shell을 이용해서 상호작용할 수 있도록 하기위해서지요

 

[그림4] 명령어 실행

서버에서 내 PC로 연결을 한 후 내 PC에서 명령어를 실행한 결과에요

 

명령어가 정상적으로 실행되고 결과도 얻을 수 있네요!!

 

2. Medium & High 

(1) 소스코드 확인

Low와 동일하게 입력해보았지만 실행이 되지 않네요

 

[그림5] 소스코드 확인

Medium은 commandi_check_1을 호출하고

High는 commandi_check_2를 호출하네요

 

[그림6] 소스코드 확인

Medium은 &와 ;사용을 막고있네요

 

[그림7] 우회

 &와 ; 대신 |를 사용합니다!!

 

위와 같이 사용하면 똑같이 연결이 되네요

 


(2) 대응방안 

시스템명령어를 외부에서 사용못하도록 하는 것이 가장 좋지만

부득이하게 사용해야한다면

 

High에 나온 것과 같이

escapeshellcmd함수를 사용하세요!

 

& ; | 특수문자를 사용할 수 없도록 합니다!

 

 

'Wargame > BeeBox' 카테고리의 다른 글

Beebox[PHP Code Injection]  (0) 2021.03.30
Beebox[OS Command Injection - Blind]  (0) 2021.03.30
Beebox[iFrame Injection]  (0) 2021.03.29
Beebox[HTML Injection - Stored (Blog)]  (0) 2021.03.29
Beebox[HTML Injection - Reflected (URL)]  (0) 2021.03.29

댓글