🇰🇷 한글 설명
PHP Inventory 1.2의 index.php에 존재하는 SQL injection 취약점으로, 인증된 사용자의 user_id 파라미터와 미인증 공격자의 user(username), pass(password) 파라미터를 통해 임의의 SQL 명령어 실행이 가능합니다. 로그인 및 사용자 관리 기능에서 입력값 검증이 미흡하여 발생합니다.
💡 쉬운 설명
웹사이트 로그인 창에서 특수한 코드를 입력하면 데이터베이스의 모든 정보를 빼낼 수 있는 취약점입니다. 사용자 이름, 비밀번호, 또는 사용자 ID 입력란에서 발생하며 공격자가 계정 없이도 악용할 수 있습니다.
🇺🇸 원문 (English)
Multiple SQL injection vulnerabilities in index.php in PHP Inventory 1.2 allow (1) remote authenticated users to execute arbitrary SQL commands via the user_id parameter in a users details action, and allow remote attackers to execute arbitrary SQL commands via the (2) user (username) and (3) pass (password) parameters. NOTE: some of these details are obtained from third party information.
📍 영향받는 시스템
PHP Inventory 1.2
⚔️ 공격 벡터
로그인 폼의 username, password 파라미터 또는 사용자 관리 페이지의 user_id 파라미터에 SQL 구문을 삽입
🛡️ 대응 방법
최신 버전으로 업그레이드하거나 모든 사용자 입력에 대해 parameterized queries(prepared statements)를 사용하여 SQL injection 방지
🔧 검증 코드
PHP Inventory 설치 디렉토리 발견 시 해당 경로에서 index.php의 버전을 확인하고, SQL injection 패치 여부는 입력값 검증 함수 사용(htmlspecialchars, prepared statements 등) 확인으로 검증
find /var/www -type d -name '*inventory*' 2>/dev/null && grep -r 'class.*Inventory\|version.*1\.2' /var/www 2>/dev/null || echo 'PHP Inventory not found'