🇰🇷 한글 설명
WeGIA 3.7.3 이전 버전에서 로그인 및 비밀번호 변경 시 SHA-256 해시 함수를 솔트 없이 사용하여 동일 비밀번호가 동일한 해시값을 생성합니다. 이로 인해 사전 계산된 레인보우 테이블을 이용한 빠른 크래킹이 가능하며 전체 사용자 데이터베이스가 위험에 노출됩니다.
💡 쉬운 설명
WeGIA에서 비밀번호를 저장할 때 암호화 소금(salt)을 사용하지 않아 같은 비밀번호는 같은 암호화 코드가 됩니다. 공격자는 미리 만든 암호화 표를 이용해 사용자 비밀번호를 쉽게 알아낼 수 있습니다.
🇺🇸 원문 (English)
WeGIA is a web manager for charitable institutions. In versions prior to 3.7.3, when a user logs in, html/login.php hashes the submitted password using PHP's hash() function with the SHA-256 algorithm and no salt before comparing it to the stored value. The password change flow in controle/FuncionarioControle.php follows the same pattern. SHA-256 is a general-purpose cryptographic hash built for speed, not password storage. Without a salt, identical passwords produce identical digests, making the entire hash database vulnerable to a single precomputed rainbow table lookup. This vulnerability is fixed in 3.7.3.
📍 영향받는 시스템
WeGIA 버전 3.7.2 이하 (html/login.php, controle/FuncionarioControle.php)
⚔️ 공격 벡터
데이터베이스 접근 시 레인보우 테이블을 이용한 해시 역산으로 사용자 비밀번호 탈취
🛡️ 대응 방법
WeGIA를 버전 3.7.3 이상으로 업그레이드하고 모든 사용자에게 비밀번호 재설정 요청
🔧 검증 코드
해당 파일이 반환되면 취약한 버전이 설치되어 있으며, 파일이 없으면 WeGIA가 설치되지 않았거나 경로가 다릅니다.
find /var/www -type f -name 'login.php' 2>/dev/null | xargs grep -l "hash(.*'sha256'" | head -1