우리의 예방은 침입자의 관점에서 고려되기 때문에 먼저 침입자가 어떻게 침입하는지 알아야 합니다. 현재 가장 널리 사용되는 웹 침입 방법은 먼저 프로그램 취약점을 찾아 웹사이트의 웹쉘을 얻은 다음, 서버 구성에 따라 권한을 상승시키는 해당 악용 가능한 방법을 찾아 서버 권한을 얻는 것입니다. 따라서 웹쉘 방지를 위해 서버와 협력하여 설정하는 것이 효과적인 방법이다.
1. 데이터베이스 불법 다운로드 방지
약간의 네트워크 보안을 갖춘 관리자는 인터넷에서 다운로드한 웹 사이트 프로그램의 기본 데이터베이스 경로를 변경할 것입니다. 물론 일부 관리자들은 데이터베이스 경로 변경은커녕 설명 파일도 삭제하지 않고 프로그램을 받아 자신의 서버에 직접 설치하는 경우가 많다. 이런 방식으로 해커는 소스 코드 사이트에서 웹 사이트 소스 프로그램을 직접 다운로드한 다음 로컬에서 테스트하여 기본 데이터베이스를 찾은 다음 데이터베이스를 다운로드하여 내부의 사용자 정보 및 데이터(보통 MD5 암호화)를 읽고 관리를 찾을 수 있습니다. 접속하셔서 로그인하시면 웹쉘을 받으실 수 있습니다. 또 다른 상황은 프로그램 오류로 인해 웹 사이트 데이터베이스의 경로가 노출되는 것입니다. 그러면 이러한 일이 발생하지 않도록 하려면 어떻게 해야 합니까? mdb의 확장 매핑을 추가할 수 있습니다. 아래와 같이:
IIS를 열고 MDB 매핑을 추가하면 mdb를 다운로드할 수 없는 다른 파일로 구문 분석할 수 있습니다. "IIS 속성" - "홈 디렉터리" - "구성" - "매핑" - "응용 프로그램 확장"을 입력하고 .mdb 파일을 추가합니다. 구문 분석을 적용하려면 데이터베이스 파일에 액세스할 수 없는 한 구문 분석에 사용되는 파일을 직접 선택할 수 있습니다.
이것의 장점은 다음과 같습니다: 1. mdb 접미사 형식의 데이터베이스 파일은 확실히 다운로드되지 않습니다. 2. 서버의 모든 mdb 파일에 대해 작동하며 이는 가상 호스트 관리자에게 매우 유용합니다.
2. 업로드 방지
위 구성의 경우 MSSQL 데이터베이스를 사용하는 경우 주입 지점이 있는 한 계속 주입 도구를 사용하여 데이터베이스를 추측할 수 있습니다. 파일을 업로드할 때 인증이 전혀 없다면 ASP 트로이 목마를 직접 업로드하여 서버의 웹쉘을 얻을 수 있습니다.
업로드에 관해서는 다음과 같이 요약할 수 있습니다. 업로드 가능한 디렉터리에는 실행 권한이 부여되지 않고, 실행 가능한 디렉터리에는 업로드 권한이 부여되지 않습니다. 웹 프로그램은 IIS 사용자에 의해 실행됩니다. IIS 사용자에게 특정 업로드 디렉터리에 대한 쓰기 권한을 부여한 다음 침입자가 업로드를 통해 웹셸을 얻는 것을 방지하려면 이 디렉터리에서 스크립트 실행 권한을 제거하면 됩니다. 구성 방법: 먼저 IIS 웹 디렉터리에서 권한 탭을 열고 IIS 사용자에게 디렉터리 읽기 및 나열 권한만 부여한 다음 업로드된 파일이 저장되고 데이터베이스가 저장된 디렉터리에 들어가서 IIS 사용자에게 쓰기 권한을 추가하고 마지막으로 이 두 디렉터리의 "속성"-"실행 권한" 옵션에서 "순수 스크립트"를 "없음"으로 변경하면 됩니다. 아래 그림을 참조하세요:
마지막으로, 위 권한을 설정할 때 상위 디렉터리 상속 설정에 주의해야 합니다. 헛된 설정을 피하십시오.
[컷 페이지]
3. MSSQL 주입
MSSQL 데이터베이스의 방어를 위해서는 먼저 데이터베이스 연결 계정부터 시작해야 한다고 말합니다. 데이터베이스에 SA 계정을 사용하지 마십시오. SA 계정을 사용하여 데이터베이스에 연결하는 것은 서버에 재앙입니다. 일반적으로 DB_OWNER 권한 계정을 사용하여 데이터베이스에 연결할 수 있으며 정상적으로 실행될 수 있다면 공용 사용자를 사용하는 것이 가장 안전합니다. 데이터베이스에 연결하기 위해 dbo 권한을 설정한 후 침입자는 기본적으로 사용자 이름과 비밀번호를 추측하거나 차등 백업을 통해서만 웹쉘을 얻을 수 있습니다. 전자의 경우 관리 백그라운드의 기본 로그인 주소를 암호화하고 수정하여 방어할 수 있습니다. . 차등 백업의 경우 백업 권한이 있고 웹의 디렉터리를 아는 것이 조건이라는 것을 알고 있습니다. 웹 디렉토리를 찾는 것은 일반적으로 디렉토리를 탐색하여 검색하거나 레지스트리를 직접 읽는 방식으로 이루어집니다. 이 두 가지 방법 중 하나는 두 개의 확장 저장 프로시저 xp_regread 및 xp_dirtree를 사용하므로 이 두 개의 확장 저장소만 삭제하면 됩니다. 물론 해당 dll 파일도 함께 삭제할 수 있습니다.
하지만 프로그램 오류로 인해 웹디렉토리가 노출된 경우에는 어쩔 수 없습니다. 따라서 계정의 권한도 낮추어 백업 작업을 완료할 수 없도록 해야 합니다. 구체적인 작업은 다음과 같습니다. 이 계정의 속성 - 데이터베이스 액세스 옵션에서 해당 데이터베이스를 선택하고 DBO 권한을 부여하기만 하면 됩니다. 다른 데이터베이스를 운영하지 마십시오. 그런 다음 데이터베이스 속성 권한으로 이동하여 사용자의 백업 및 백업 로그 권한을 제거하면 침입자가 차등 백업을 통해 웹셸을 얻을 수 없습니다.
[컷 페이지] 3. MSSQL 주입
MSSQL 데이터베이스의 방어를 위해서는 먼저 데이터베이스 연결 계정부터 시작해야 한다고 말합니다. 데이터베이스에 SA 계정을 사용하지 마십시오. SA 계정을 사용하여 데이터베이스에 연결하는 것은 서버에 재앙입니다. 일반적으로 DB_OWNER 권한 계정을 사용하여 데이터베이스에 연결할 수 있으며 정상적으로 실행될 수 있다면 공용 사용자를 사용하는 것이 가장 안전합니다. 데이터베이스에 연결하기 위해 dbo 권한을 설정한 후 침입자는 기본적으로 사용자 이름과 비밀번호를 추측하거나 차등 백업을 통해서만 웹쉘을 얻을 수 있습니다. 전자의 경우 관리 백그라운드의 기본 로그인 주소를 암호화하고 수정하여 방어할 수 있습니다. . 차등 백업의 경우 백업 권한이 있고 웹의 디렉터리를 아는 것이 조건이라는 것을 알고 있습니다. 웹 디렉토리를 찾는 것은 일반적으로 디렉토리를 탐색하여 검색하거나 레지스트리를 직접 읽는 방식으로 이루어집니다. 이 두 가지 방법 중 하나는 두 개의 확장 저장 프로시저 xp_regread 및 xp_dirtree를 사용하므로 이 두 개의 확장 저장소만 삭제하면 됩니다. 물론 해당 dll 파일도 함께 삭제할 수 있습니다.
하지만 프로그램 오류로 인해 웹디렉토리가 노출된 경우에는 어쩔 수 없습니다. 따라서 계정의 권한도 낮추어 백업 작업을 완료할 수 없도록 해야 합니다. 구체적인 작업은 다음과 같습니다. 이 계정의 속성 - 데이터베이스 액세스 옵션에서 해당 데이터베이스를 선택하고 DBO 권한을 부여하기만 하면 됩니다. 다른 데이터베이스를 운영하지 마십시오. 그런 다음 데이터베이스 속성 권한으로 이동하여 사용자의 백업 및 백업 로그 권한을 제거하면 침입자가 차등 백업을 통해 웹셸을 얻을 수 없습니다.