
Vuln disclosure for XOne app
저자: Javier Carabantes
영향 받는 소프트웨어: XOne Web Monitor
소프트웨어: https://xone.es/
영향 받는 버전: 02.10.2024.530 framework 1.0.4.9
XOne Web Monitor 버전 02.10.2024.530 framework 1.0.4.9 의 로그인 기능에서 인증되지 않은 SQL 인젝션 취약점이 발견되었습니다. 이 결함으로 인해 공격자는 인증 과정에서 사용자 입력을 부적절하게 처리하는 점을 악용하여 저장된 모든 사용자 이름과 비밀번호를 추출할 수 있습니다. 특히 로그인 엔드포인트의 설계로 인해 공격자는 취약한 입력 파라미터를 통해 WHERE 절을 조작할 수 있습니다.
/webcore/api/itf/DoAction
다음은 취약한 버전에 대해 조작된 POST 요청을 사용하여 취약점을 악용하는 방법을 보여줍니다:

잘못된 로그인(예: "test:test")이 제공되면 다음 요청이 전송됩니다.
POST /webcore/api/itf/DoAction HTTP/1.1
Host: redacted:44330
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://redacted:44330/
Content-Type: application/json
Authorization: Bearer redacted
Content-Length: 124
Origin: http://redacted:44330
Connection: keep-alive
{"action":"select","count":false,"page":{},"coll":"Usuarios","macros":{},"where":"(LOGIN='test')","sort":"","loadall":false}
비밀번호가 전송되지 않고 사용자 이름이 where 속성에 래핑되는 방식을 확인하세요. LOGIN 필드의 연산자를 변경하면 전체 사용자 목록과 비밀번호가 평문으로 표시됩니다:

응답에는 데이터베이스에 저장된 모든 사용자 이름과 해당 비밀번호 목록이 나타납니다. 모든 사용자는 민감한 데이터(고객, 직원 직위 등)에 접근하여 획득할 수 있습니다.

이 SQL 인젝션 취약점은 MSSQL에서 UNION 쿼리 사용도 지원하여 공격자가 데이터베이스의 다른 테이블에서 데이터를 열거하고 검색할 수 있습니다.

동일한 인젝션은 공격자가 절대 경로를 알고 있는 경우 LFD(로컬 파일 포함)를 허용합니다. 예를 들어 권한 있는 파일인 C:/windows/system32/grouppolicy/machine/registry.pol을 읽을 수 있습니다:

이 취약점은 2024년 11월 11일 주에 공급업체에 통보되었습니다.
PoC에 표시된 웹페이지는 게시 중단되었습니다.