2012-01-12 5 views
0

hsqldb 형식의 데이터베이스 파일 세트 (예 : .data, .properties.script 파일)가 있는데 이전에이를 관리하고 자격 증명을 남기지 않은 사람이 있습니다. 나는 기본 "sa"사용자 및 기본 빈 암호를 전달 (예 : SqlTool 또는 DatabaseManager 등) 독립형 파일 기반 데이터베이스에 액세스하기 위해 어떤 수단을 사용하여 데이터베이스에 연결하려고하면, 나는 그런 식으로 뭔가를 얻을 :hsqldb 바이 패스 인증 : 잊어 버린 사용자 및 비밀번호 재설정

 
java.sql.SQLException: User not found: SA 
     at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
     at org.hsqldb.jdbc.jdbcConnection.(Unknown Source) 
     at org.hsqldb.jdbcDriver.getConnection(Unknown Source) 
     at org.hsqldb.jdbcDriver.connect(Unknown Source) 
     at java.sql.DriverManager.getConnection(DriverManager.java:582) 
     at java.sql.DriverManager.getConnection(DriverManager.java:185) 
... 

전체 hsqldb 인증 및 권한 부여 체계를 쉽게 무시하고 "sa"사용자의 전체 권한을 다시 설정하는 방법이 있습니까? 나는 전체 hsqldb 문서를 파고 들었고 Google을 통해 조사를 해봤지만이를 우회 할 수있는 방법을 찾을 수 없습니까?

brute-forcing이 없으면 완전히 불가능합니다 (즉, 파일은 실제로 으로 암호가 지정됨). This question은 비밀번호가 .script 파일에 저장되어 있다고 언급하지만, 또는 BINARY 형식으로 설정되어있는 것으로 보입니다 (벌거 벗은 눈으로는 알 수 없음) SET SCRIPTFORMAT 명령을 사용하여 생생한 스트링 데이터를 볼 수 있습니다. .data 파일에 있습니다. BINARY 형식의 암호를 해독 할 수 있습니까?

답변

1

.data 파일에 일반 텍스트 문자열이 표시되면 데이터베이스가 암호화되지 않습니다.

HSQLDB는 opensource이므로 데이터베이스를 열 때 원본을 편집하여 콘솔에 사용자 이름과 암호를 출력 할 수 있습니다. 이 목적으로 User 클래스를 찾으십시오. 암호화 키가 없으면 전혀 열리지 않는 암호화 된 데이터베이스에서는이 작업을 수행 할 수 없습니다.

+0

감사! auth 체계를 우회하는 "공식적인"방법은 없다고 가정하지만 처음 연결 시도시 모든 인증 데이터를 표시하는 소스를 패치하는 것은 쉽지 않습니다. 누군가 다른 사람이 필요로 할 경우,'UserManager # createUser (name, password)'에'name'과'password'의 덤핑을 추가하면됩니다. – GreyCat

관련 문제