🇰🇷 한글 설명
Guardian language-system의 translate.php 파일에서 id GET 파라미터가 적절한 검증 없이 PHP exec() 함수에 직접 전달되는 취약점이 발견되었습니다. 인증되지 않은 원격 공격자가 셸 메타문자를 삽입하여 서버에서 임의의 운영체제 명령을 실행할 수 있습니다.
💡 쉬운 설명
해커가 웹사이트 주소에 특수 문자를 섞어 넣는 것만으로도 서버를 마음대로 조종할 수 있는 심각한 보안 결함입니다. 별도의 로그인 없이도 누구나 서버에 명령을 내려 정보를 훔치거나 시스템을 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
Guardian language-system passes the id GET parameter directly into a PHP exec() call in translate.php (line 14) without sanitization: exec(\"php jobs/translate.php \".$login_session.\" \".$_GET['id'].\" ...\"). No authentication is required. An unauthenticated remote attacker can append shell metacharacters to execute arbitrary OS commands on the server.
📍 영향받는 시스템
Guardian language-system (translate.php 사용 버전)
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 URL의 id 파라미터에 셸 메타문자를 삽입하여 공격
🛡️ 대응 방법
사용자 입력값에 대한 엄격한 필터링을 적용하고, exec() 함수 대신 안전한 API를 사용하거나 입력값을 이스케이프 처리해야 합니다.
🔧 검증 코드
명령어 실행 결과로 uid 또는 gid와 같은 시스템 사용자 정보가 출력되면 취약한 상태입니다.
curl -s 'http://<target>/translate.php?id=;id' | grep -E 'uid=|gid='