2009-10-16 6 views
1

간단히 말하자면 우리 서버에 처방 의약품을 홍보하는 파일을 찾았습니다. Windows 서버는 매우 오래된 응용 프로그램을 가지고 있으며 MySQL 5.1.11을 실행합니다.SQL 인젝션을 통해 MySQL에 파일을 쓸 수 있습니까?

다른 보안 결함 이외에도 SQL 삽입을 사용하여 파일을 서버 파일 시스템에 쓸 수 있습니까? 이러한 오래된 응용 프로그램 중 일부는 SQL 주입 공격에 취약하다는 것이 확실합니다. 나는 이것이 가능하다고 생각하지 않겠지 만, MySQL이 "커맨드 라인"에 접근하여 그 정보를위한 소스를 찾을 수는 없지만 파일을 통해 읽을 수 있다는 것을 기억하는 것 같습니다. 그런 다음 다시 한 번 내 마음이 내게 속임수가 될 수 있습니다.

가능하다면 비활성화 할 수있는 설정이 있습니까?

또한 SQL 인젝션 취약점을 제거하는 답변을 찾고 있지 않습니다. 분명히 그럴 필요가있다. SQL injection 취약점이 수정되는 동안 불량 파일이 다시 등장하는 것을 막을 단기간 해결책을 찾고 있습니다. 모든 오래된 응용 프로그램을 고치는 것은 많은 시간이 걸릴 것입니다.

감사합니다.

답변

4

특히 적절하게 부주의 한 구성이 가능합니다.

예를 들어, SELECT ... INTO OUTFILE 'file_name'

있다 그러나 그것은 또한 다른 보안 문제가 될 가능성이 있습니다. 데이터베이스를 기밀 정보 또는 개인 정보가 포함 된 경우 특히 신속하게 오프라인으로 소프트웨어를 가져 오는 것이 중요합니다. Colin Pickard가 보여 주듯이

+0

그럴만 한 자격이 있습니다. 정보 주셔서 감사합니다. – Eddie

1

으로 예.

하지만 애플리케이션을 업데이트 할 수 없더라도 현재 실행중인 권한이 필요하지는 않습니다. mysql에 로그인 한 사용자를 확인하고 해당 권한을 최소로 낮추어야한다. 특히이 경우, 앱이 mysql 서버에 저장된 파일을 읽거나 쓰지 않으면 FILE 권한을 제거해야합니다.

+0

MySQL 관리자가이 FILE 권한을 사용할 수 있습니까? 아니면 그것을 취소하려면 콘솔로 이동해야합니까? – Eddie

+1

이 작업은 mysql 관리자가 할 수 있지만 먼저 도구 메뉴로 가서 옵션을 선택하고 "전역 권한 표시"및 "스키마 개체 권한 표시"를 켜야합니다. – longneck

+0

감사합니다. FILE 권한이 사용자에게 부여되지 않은 것 같습니다. 사용자가 "INTO OUTFILE"로 선택 명령을 실행할 수 없다는 것을 의미한다고 가정합니다. – Eddie

0

응용 프로그램 디렉터리의 사용 권한을 웹 계정에 대해 읽기 전용으로 설정하면 작동 할 수 있습니다. 이것은 당신이 이미 로그 파일과 같은 파일을 생성하지 않는다고 가정합니다.

관련 문제