Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
04-06 16:30
Today
Total
관리 메뉴

[W-18]IIS DB 연결 취약점 점검 본문

인프라진단/진단 항목 정리

[W-18]IIS DB 연결 취약점 점검

h4ckpr1n 2025. 9. 10. 13:01

진단 기준

IIS에서 Global.asa 같은 DB 연결 파일이 외부에 노출되는 위험을 점검하는 항목.

Global.asa ?
Global.asa 파일은 ASP 애플리케이션의 환경 설정, DB 접속 정보(계정/비밀번호, DB명, 서버 주소 등) 같은 민감한 내용을 담고 있음
이 파일에 접근 제한이 없으면 공격자가 웹을 통해 직접 다운로드하여 DB 계정을 탈취할 수 있고, 곧바로 DB 서버 침해로 이어진다.

그래서 점검 포인트는 .asa 확장자 파일이 IIS에서 직접 실행/다운로드 되지 않도록 요청 차단이나 핸들러 제한이 걸려 있는지 확인

 

 

진단 방법

1. 처리기 매핑(Handler Mapping)

<httpHandlers>
  <add path="*.asax" type="System.Web.HttpForbiddenHandler" validate="true" verb="*" />
</httpHandlers>


- 특정 확장자 요청(.asax 등)을 특정 핸들러로 연결
- HttpForbiddenHandler → 해당 요청을 무조건 거부하게 매핑
- 즉, “들어와도 처리하지 않고 바로 차단”
- asa, asax 처리기 매핑 자체가 안되어있으면 차단됨.

 

2. 요청 필터링(Request Filtering)

<requestFiltering>
  <fileExtensions>
    <add fileExtension=".asa" allowed="false" />
    <add fileExtension=".asax" allowed="false" />
  </fileExtensions>
</requestFiltering>


- allowed="false" → 접근 거부. 아예 해당 확장자의 요청을 받지 않음

- 디폴트는 true 라서, 만약 처리기 매핑에서 매핑 되어있는데 여기서 필터링 안하면 취약함.


📌 차이점
처리기 매핑은 요청이 들어왔을 때 특정 핸들러를 태워서 동작 (거부 핸들러도 가능).
요청 필터링은 아예 요청을 IIS 수준에서 차단.

 


👉 결론
둘 중 하나만 설정해도 차단 효과는 있음. 보안성은 Request Filtering이 더 직접적
가능하면 중복 적용하면 더 확실 (실무에서는 많이 그렇게 구성)

 

위의 두 설정을 보고 조건에 맞으면 안전하다고 볼 수 있다.

 

조건1: 처리기 매핑에 ASAX, ASA 가 연결되지 않은 경우

조건2: 처리기 매핑에 ASAX, ASA가 거부(HttpForbiddenHandler 연결)하도록 매핑 되어있는 경우(둘다)

조건3 : 처리기 매핑에 ASAX,ASA가 거부 매핑이 안되어있으나, 요청 필터링에서 해당 확장자를 false 설정한 경우

 

사실 취약한 경우는 처리기 매핑되어있는데 요청 필터링 안하는 경우밖에 없다

 

점검예시 1:

- asax 확장자에 대해서 처리기 매핑에서 400 에러로 던지고 있음

- asa, asax 확장자에 대해서 요청필터링에서 거부하고 있음

> 두 확장자 모두 거부 처리 되어 안전

 

점검예시 2:

1) 처리기 매핑 허용 

<system.webServer>
  <handlers>
    <!-- .asax 파일을 ASP.NET 핸들러로 매핑 (취약) -->
    <add name="ASAX" path="*.asax" verb="*" modules="IsapiModule"
         scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
         resourceType="File" requireAccess="Read" />
  </handlers>
</system.webServer>

 

2) 파일에 대한 차단 설정 없음

<system.webServer>
  <security>
    <requestFiltering>
      <fileExtensions>
        <!-- .asa, .asax 파일에 대한 차단 설정 없음 (취약) -->
        <!-- allowed="false" 가 빠져있음 -->
      </fileExtensions>
    </requestFiltering>
  </security>
</system.webServer>

 

위와 같이 매핑도 되어있으면서 파일에 대한 차단 설정이 없으면 취약.

Comments