🇰🇷 한글 설명
WordPress의 WP Booking System – Booking Calendar 플러그인 2.1.0.1 이하 버전에서 'data[orderby]' 파라미터를 통한 SQL 인젝션 취약점이 발견되었습니다. 관리자 권한을 가진 공격자가 부적절한 이스케이프 처리를 악용하여 데이터베이스에 추가 쿼리를 삽입하고 민감한 정보를 추출할 수 있습니다. 이 공격을 실행하려면 대상 캘린더에 200개 이상의 예약 데이터가 존재해야 합니다.
💡 쉬운 설명
관리자 권한을 가진 사용자가 예약 목록을 정렬하는 기능을 악용해 데이터베이스의 비밀 정보를 몰래 빼낼 수 있는 보안 약점입니다. 특정 조건(예약 200개 이상)이 충족되면 데이터베이스에 잘못된 명령을 내려 정보를 탈취할 수 있습니다.
🇺🇸 원문 (English)
The WP Booking System – Booking Calendar plugin for WordPress is vulnerable to generic SQL Injection via the 'data[orderby]' parameter in all versions up to, and including, 2.1.0.1 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Exploitation requires the targeted calendar to have more than 200 bookings, as the orderby value is only forwarded to the database layer when the AJAX handler takes the use_ajax branch; an Administrator can satisfy this condition by creating bookings directly.
📍 영향받는 시스템
WP Booking System – Booking Calendar plugin (버전 2.1.0.1 및 그 이하 모든 버전)
⚔️ 공격 벡터
인증된 관리자 권한을 이용한 AJAX 핸들러의 'data[orderby]' 파라미터 조작을 통한 SQL Injection
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 입력값에 대한 적절한 이스케이프 처리 및 Prepared Statement 사용을 적용해야 합니다.
🔧 검증 코드
출력된 플러그인 목록에서 WP Booking System의 버전을 확인하여 2.1.0.1 이하인지 점검합니다.
wp plugin list --status=active | grep -i 'wp-booking-system'