🇰🇷 한글 설명
maestro의 REST API 목록 엔드포인트 내 orderBy 쿼리 매개변수에서 SQL 인젝션 취약점이 발견되었습니다. 인증이 필요 없는 원격 공격자가 이 취약점을 악용하여 데이터베이스에서 데이터를 읽기 전용 방식으로 추출할 수 있습니다.
💡 쉬운 설명
해커가 로그인 없이도 웹사이트의 명령어를 조작하여 데이터베이스에 저장된 정보를 몰래 훔쳐볼 수 있는 결함입니다. 데이터베이스의 내용을 직접 수정할 수는 없지만, 중요한 정보를 읽어낼 위험이 있습니다.
🇺🇸 원문 (English)
A flaw was found in maestro. A remote attacker could exploit a SQL injection vulnerability in the `orderBy` query parameter of its REST API list endpoints. This flaw, which does not require authentication, allows for read-only blind extraction of data from the database.
📍 영향받는 시스템
maestro (REST API 사용 버전)
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 REST API의 orderBy 매개변수에 악의적인 SQL 구문을 삽입하여 공격
🛡️ 대응 방법
orderBy 매개변수에 대한 입력값 검증을 강화하고, Prepared Statement를 사용하여 SQL 인젝션을 방지하도록 패치 적용
🔧 검증 코드
명령어 실행 시 응답 시간이 5초 이상 지연된다면 SQL 인젝션 취약점이 존재하는 것으로 판단합니다.
curl -s -X GET 'http://<target-ip>/api/list?orderBy=id%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(5)))a)' | grep -i 'error'