phpsafe 𝕏 GitHub
공식 CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 이 주소만 공식 주소입니다.

쉘 명령어 실행

위험도: 치명적 CWE-78 OWASP A03:2021 Injection rule: exec

왜 위험한가요

쉘에 전달된 입력값에 ; 나 | 같은 문자를 넣으면 다른 명령어를 덧붙일 수 있어, 공격자가 서버를 장악하게 됩니다. 값을 엄격하게 검증하고 모든 인자를 escapeshellarg()로 감싸세요.

✕ 취약한 코드
system('ping -c 1 ' . $_GET['host']);
✓ 안전한 코드
$host = $_GET['host'] ?? '';
if (!filter_var($host, FILTER_VALIDATE_IP)) {
    exit('Invalid address');
}
system('ping -c 1 ' . escapeshellarg($host));

해결 방법

쉘 호출은 피하세요. 꼭 필요하면 인자마다 escapeshellarg()를 쓰고, 사용자 입력이 명령어 자체에 들어가지 않게 하세요.

내 코드 검사하기

파일을 붙여넣으면 이 규칙에 걸리는 줄을 모두 찾아드립니다.

내 코드 검사하기 →