
CVE-2018-16987에 대한 세부 정보 - Squash TM에서 TA 서버 비밀번호의 평문 저장
이것은 침투 테스트 중 Squash TM에서 발견한 민감 정보의 평문 저장 및 민감 정보 노출 취약점입니다.
Squash TM은 테스트 케이스를 관리하는 데 사용되는 웹 인터페이스입니다. 프로젝트 링크
Squash TM은 최소한 1.18.0 버전까지 관리 패널에 외부 서비스의 평문 비밀번호를 표시하며, 이는 HTML 소스 코드의 ta-server-password 필드에서 확인할 수 있습니다.
SquashTM의 관리 패널에서 외부 서비스(일명 자동화 서버) 페이지에는 서비스 계정의 평문 비밀번호가 포함되어 있습니다. 이러한 외부 서비스는 무엇이든 될 수 있지만 가장 대표적인 예는 Jenkins 서버입니다.
다음은 예시 URL입니다: http://localhost:8080/squash/administration/test-automation-servers/1
다음은 페이지 소스 코드에서 발췌한 내용입니다:
<label for="ta-server-password">Password</label>
<div id="ta-server-password" class="display-table-cell" style="font-weight: bold;">cleartext_password</div>
이러한 현상은 또한 외부 서비스의 비밀번호가 평문으로 저장된다는 것을 의미하며, 데이터베이스(H2 및 postgresql)에서 해당 비밀번호를 grep하여 확인했습니다.
또한, 애플리케이션의 기본값이 다음과 같다는 사실로 인해 이 취약점의 위험도는 더욱 높아집니다:
권장 점수: 4.1 (CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N)
향후 연구자들을 위한 참고 사항으로, 실제 사용자의 비밀번호는 SHA1으로 저장됩니다. 이상적이지는 않습니다. 코드베이스를 간단히 감사해 본 결과, 모든 SQL 요청은 (Prepared Statement로) 올바르게 구성된 것으로 보입니다. 취약한 버전의 Jackson 구성 요소를 사용하여 필터링되지 않은 사용자 입력(GET 매개변수)으로부터 일부 역직렬화(보고서 생성 및 검색 기능)가 수행되지만, 다형성 타입 처리가 없기 때문에 악용 가능해 보이지는 않습니다.