2008-09-19 4 views
5

이상한 시나리오를 여기에서 다루십시오.사용자 계정을 mySQL에 삽입

우리는 mySQL을 사용하여 데이터를 저장하는 독점적 인 워크 스테이션 관리 응용 프로그램을 사용합니다. 응용 프로그램 내에서는 어떤 사용자가 언제 어떤 컴퓨터에 로그인했는지, 모니터링되는 시스템에 설치된 모든 소프트웨어 제품 등을 비롯하여 여러 가지 보고서를 제공합니다. 우리는 다른 보고서 집합을 원하지만 사용자 지정 보고서를 지원하지 않습니다.

데이터가 mySQL에 저장되므로 수동으로보고 할 수 있습니다. 그래도 mySQL 서버에 연결할 수있는 유효한 자격 증명이 없습니다. mySQL 서버에 사용자 계정을 만들 수 있습니까? 루트 암호 나 거기에있을 수있는 계정을 재설정하지 않으려는 경우 응용 프로그램이 손상 될 수 있습니다.


전 Windows 2003 서버에 대한 모든 권한이 있습니다. mySQL 서버를 포함하여 서비스를 중지했다가 다시 시작할 수 있습니다. 실제 mySQL 서버에는 소프트웨어에서 제공하는 GUI를 통해서만 기본적인 액세스 권한 만 있습니다. CLI 또는 다른 도구를 통해 직접 자격 증명이 없기 때문에 연결할 수 없습니다.


mySQL 서버에 대한 무단 액세스를 시도하는 것처럼 불만을 표시하는 경우 사과드립니다. 나는 소프트웨어 회사에 연락을했고, 오늘부터는 응답이 없는데 2 주가 넘었습니다. 데이터에 접근해야합니다. 물리적 박스에 대한 전체 액세스 권한이 있으며, 관리자 권한이 있습니다.

답변

9

당신은 MySQL 암호 복구 프로세스를 사용하고자합니다. these instructions을 따르되, 암호 재설정 조회를 add a new user으로 대체하십시오. 새로운 사용자 쿼리는 것 같은 뭔가 : 로컬 시스템의 CLI를 통해 MySQL로 로그인 할 수 있습니다 암호 "mypassword"와 새 사용자 "참고 MyUser"를 생성합니다

GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 

. 그런 다음 MySQL 관리자 GUI ( download here)를 사용하고 사용자 권한을 업데이트하여 네트워크의 다른 시스템에서 로그인 할 수 있습니다. 또는 더 세련된 스타일이라면 CLI에서 GRANT statement을 사용하십시오.

+0

그게 내가 찾고 있었던 바로 그 것이다. 고맙습니다. – Nasir

+0

이 문제는 루트 암호를 다시 설정한다는 것입니다. 즉, 응용 프로그램이 알려진 루트 암호에 의존하면 더 이상 필요하지 않으며 사용자가 루트 암호를 다시 설정하지 않으려 고합니다. – delfuego

+1

아, 알겠습니다. 예, 환상적으로 작동합니다. 좋은. 골머리 인 것에 대해 유감스럽게 생각합니다. – delfuego

0

문제가되는 MySQL 서버에 액세스 할 수 있습니까?

마찬가지로 일반 사용자의 것 이상의 어떤 액세스 권한이 있습니까? 해당 소프트웨어로 인해 실현 될 수도 있고 실현되지 않을 수도 있기 때문에 거기에서 길을 "해킹"하기 전에 해당 경로를 통과해야합니다.

0

나는이 질문에 정말로 대답해서는 안된다고 가정하지만, 너무 재미 있습니다.

SQL 인젝션에 대해 This 페이지를보십시오. 그것은 귀하의 필요를 충족시켜야합니다. ,

p'; INSERT INTO user VALUES 

('myNewAdmin' '로컬 호스트'PASSWORD ('some_pass') : This 페이지는 제가 임의의 사용자 입력 필드에 다음을 입력하려고 할 것입니다 MySQL을

에 사용자 계정을 추가하는 방법을 보여줍니다 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y' Y ','Y ');

하고

p'; FLUSH PRIVILEGES; 

P '; 정기적 인 질문을 마무리하기위한 것입니다. 예컨대 - 일반 질문은

"Select Adress from cusomers where custName = ' + $INPUT + '; 

염두에 제공

Select Adress from cusomers where custName = 'p'; INSERT INTO user 
VALUES('localhost','myNewAdmin',PASSWORD('some_pass'), 
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 
+0

투표가 마음에 들지 않지만 무엇이 문제인지 알고 싶습니다. 내가 그 질문에 대답하는 것 같아.내가 내 대답에 틀렸다면 나는 downvotes의 무리를받을 가치가 있지만 묻는 사람이 내 대답은 신뢰할 수 없다는 것을 알 수 있도록 의견을 남기십시오 – Tnilsson

+0

당신이 집을 비울 경우 해결책은 자물쇠 - - 쇠톱이 아니야. –

+0

upvoted, 솔루션이기 때문에 흥미 롭습니다. :) – Sophia

0

한 가지는 데이터베이스 통신을 스니핑하고 암호화되지 바란다되어진다. 암호화 된 경우 SSL을 사용하지 않도록 구성을 변경하고 mysql을 다시 시작하십시오.

MySQL이 지원하는 보안 (암호화) MySQL의 클라이언트와 보안 소켓 레이어 (SSL) 프로토콜을 사용하여 서버 사이 연결 : 내가 사용하는 좋은 스니퍼는 Wireshark

mysql 5.0 documentation에서입니다. 이 섹션 은 SSL 연결 사용 방법을 설명합니다. 또한 Windows에서 SSH 을 설정하는 방법을 설명합니다. 사용자가 SSL 연결을 사용하도록 요구하는 방법에 대한 자세한 내용은 12.5.1.3 절 "GRANT 구문"에있는 GRANT 문의 REQUIRE 절에 대한 설명을 참조하십시오.

의 MySQL의 표준 구성은 가능한 한 빨리 의도 , 그래서 암호화 된 연결이 기본적으로 사용되지 않습니다. 이렇게하면 클라이언트/서버 프로토콜이 훨씬 느려집니다. 데이터 암호화가 CPU를 많이 사용하는 작업 인 경우 컴퓨터 이 추가 작업을 수행하고 다른 MySQL 작업을 지연시킬 수 있습니다. 암호화 연결로 제공되는 보안이 필요한 응용 프로그램의 경우 계산이 필요합니다.

MySQL을 사용하면 연결 당 의 암호화를 사용하도록 설정할 수 있습니다. 일반적인 암호화되지 않은 연결 을 선택하거나 개별 애플리케이션의 요구 사항에 따라 암호화 된 SSL 암호화 연결 을 선택할 수 있습니다.

보안 연결은 OpenSSL API를 기반으로하며 을 통해 사용할 수 있습니다. 복제에서는 C API를 사용하므로 마스터와 종속 서버간에 보안 연결을 으로 사용할 수 있습니다.

아마도 이미 했겠지만 애플리케이션 설정 파일을 통해 검색해보십시오. 아무 것도 없으면 실행 파일/소스 코드를 검색해보십시오. 운이 좋으면 평문으로 표시 될 수도 있습니다.

0

확률은 데이터베이스 측에서 로그를 유지하는 트리거가 있기 때문에 데이터베이스에 해킹 할 때 언제 어떻게했는지 알 수 있습니다. 별로 좋은 생각이 아닙니다.

+0

알 수없는 사용자가 로그인 할 때 발생하는 DB에 트리거가 발생한다고 생각하는 것이 제멋대로라고 말하고 싶습니다. 어떻게 아키텍처를 설정합니까? 이걸 지원하는거야? SMTP 클라이언트가 내장되어있어 경고 메일을 보냈습니까? 어떤 메일 서버를 사용합니까? 이럴 가능성은 없습니다. – delfuego

관련 문제