IIS7.x 이상에서 SQL Injection 과 Web-Shell 해킹을 간단하게나마 접근을 하지 못하게 하는 방법을 알려드리겠습니다.



1. 관리자 페이지 접속 IP 제한

현재는 관리자 페이지(admin 디렉터리)가 모두에게 개방이 되어 있는 상태로 있다고 가정을 하고 관리자 페이지를 아래 그림과 같이 admin 폴더를 클릭하세요.





그리고 아래 그림과 같이 IIS -> IP 주소 및 도메인 제한(우클릭) -> 기능열기 클릭합니다.





그리고 기능 설정 편집 클릭





일단 관리자 페이지에 모든 사용자가 접근을 할 수 없도록 아래 그림과 같이 거부를 설정합니다.





전부 거부를 하였으니 그다음 허용할 IP를 설정해야 하니.  허용 항목 추가를 클릭합니다.





IP 등록시 하나의 IP를 넣어도 되고 클래스 별로 넣을수도 있도록 되어 있으니 사용할 부분에 선택을 합니다.





등록을 하게 되면 아래 그림과 같이 허용할  IP 클래스가 나옵니다.




이제 테스트를 해야겠죠? 

허용 IP가 아닌 다른 IP 대역대에서 접속 테스트를 해보면 아래 그림과 같이 사용 권한 없음이 나타나야 정상입니다.

이 정도만 해도 특정 관리자들이 로그인하는 부분에서 SQL Injection 에 대해 조그만한 대비가 됩니다.






2. 업로드 디렉터리 실행 권한 제거


만약 해킹으로 어떻게든 로그인 부분에서 뚫렸다면 업로드 디렉터리에 스크립트 실행 권한을 제거 한다면 이 또한 대비가 될것입니다.


먼저 업로드 디렉터리를 선택한 후, 처리기 매팅 도구를 기능 열기로 실행합니다. 아래 그림 참조.





처리기 매핑 화면이 나타나면 아래 그림과 같이 순서대로 [기능 사용 권한 편집] -> [스크립트 체크 해제]-> 확인 을 하시면 됩니다. 그렇게 되면 뒤에 있는 기능들이 상태가 그림과 같이 사용안함 및 회색으로 변합니다.





이 두가지만 설정을 해 놓으셔도 어느정도(?) 대비가 되실겁니다.


추후 또 다른 정보가 있다면 글을 올리도록 하겠습니다.


IIS 7.0 이상의 버젼에서 asp 작업을 하다보면 아래와같이 자세한 오류 메시지가 보이지 않아서 난감할때가 있습니다.




IIS 7.0 이상의 버젼 부터는 보안이 강화되어 "자세한 오류"메시자가 표시가 되지 않았습니다.
이를 표시하기 위해서는 아래와 같이 설정을 변경합니다.

!주의 : 아래와 같이 설정시 해킹의 위험(고의적인 에러 유도로 웹서버 종류 파악을 할 수 있으며 IIS 에러 페이지로        WINDOWS 버젼 예상)이 있으니 장애 오류 확인 할때만 사용하시는게 좋을듯 합니다.

1. IIS(인터넷 정보 서비스) 관리자


2. 사이트 -> IIS -> ASP -> 기능열기 -> 디버깅 속성

- 브라우저에 오류 전송 : True

- 서버 쪽 디버깅 사용 : False

- 클라이언트 쪽 디버깅 사용 : True


3. 사이트 -> IIS -> 오류 페이지 -> 기능 열기 -> 기능 설정 편집

오류 응답 : 자세한 오류



다 적용하신 후 오류 메세지를 확인 해 보면 아래와 같이 나옵니다.