⠀
[W-12] IIS CGI 실행 제한 본문
진단 기준
IIS 구동 시, CGI 실행 제한 설정이 적절하게 되어있는지 확인.
CGI는 웹서버가 외부 프로그램을 실행해서 그 결과를 웹 응답으로 돌려주는 오래된 인터페이스.
예를 들어 IIS 설정에서 *.exe가 매핑돼 있다는 건, “웹에서 exe 실행 허용” 구조가 깔려 있다는 의미.
진단 방법
1. IIS 서비스 확인
1) 확인 방법
$ net start
2) 결과예시
- 수행중 : World Wide Web Publishing Service
- 수행 X : 미출력
> 사용하고 있지 않으면 해당 취약점은 제외.
2. 핸들러확인 및 ISAPI/CGI 제한설정 확인
1) 확인 파일
- %windir%\System32\inetsrv\config\applicationHost.config 혹은 각 사이트의 web.config
- 둘다 위 파일에서 설정.
2.1 핸들러 확인(CGI 연동 여부)
1) 확인 내용
- 핸들러에 위험한 파일이 있는지 확인
- 아래와 같이 되어있으면, EXE 파일에 대해서 실행 허용해둔것.
- 아예 아무것도 연동이 안되어있으면 해당 항목 안전.
<add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" requireAccess="Execute" />
2.2 ISAPI/CGI 제한 설정 확인
1) 확인 내용
- ISAPI 및 CGI 제한 등록 여부 확인
- 아래와 같은 블록이 있으면 아래 파일에 대해서만 실행 허용 된 것.
<system.webServer>
<security>
<isapiCgiRestriction>
<add path="C:\Windows\System32\inetsrv\asp.dll" allowed="true" groupId="ASP" description="Active Server Pages" />
<add path="C:\Windows\System32\inetsrv\fcgiext.dll" allowed="true" groupId="FCGI" description="FastCGI Extension" />
</isapiCgiRestriction>
</security>
</system.webServer>
- 아래와 같이 notListedIsapisAllowed, notListedCgisAllowed 옵션에 대해서 false 설정되어 있거나, 설정되어있지 않을 경우(디폴트 false) 아래 리스트 파일만 실행가능한 파일로 지정해둔 것.
<system.webServer>
<security>
<isapiCgiRestriction notListedIsapisAllowed="false" notListedCgisAllowed="false">
<add path="C:\Windows\system32\inetsrv\asp.dll" allowed="true" groupId="ASP" description="Active Server Pages" />
<add path="C:\Windows\system32\inetsrv\webdav.dll" allowed="true" groupId="WEBDAV" description="WebDAV" />
3. 실행 가능 리스트에 있는 파일에 대한 권한 확인
- 위 리스트에 있는 파일에 everyone 권한이 없는지 검토
? 점검 방법 ?
아래와 같은 조건일 때, 양호 조건이라고 볼 수 있다.
1 .핸들러에 아무것도 연동되어있지 않음
2. 핸들러에 특정 파일이 연동되어있으나, ISAPI/CGI 제한 설정에 필요한 파일만 실행하도록 설정해두었으며 + 해당 파일들에 Everyone 권한이 없음
보통, ASP, ASP.NET, CGI 기능 설치하면 핸들러 설정이랑 ISAPI/CGI 제한 항목이 자동으로 추가된다. 해당 태그가 파일 내에 없으면 그냥 안쓰는거고, 서버 내에서 실행 파일이 실행 자체가 안돼서 안전하다고 봐도 된다.
예시를 통해 알아보자.

1. Handler 현황 확인
- .exe 파일에 대해서 실행하게 되어있음.
2. isapiCgiRestrion 현황 확인
- notListedIsapisAllowed / notListedCgisAllowed : 목록에 없는 CGI 프로그램을 이 서버에서 실행할 수 있는지 여부를 지정하는 옵션. 해당 옵션이 false 면, 아래 있는 파일들 외에 파일은 실행되지 않음(설정 안하면 디폴트로 FALSE)
- 현재 .false 로 설정되어있고, 실행가능한 파일 리스트를 설정해두었음
3. 실행 가능한 파일(리스트)의 Everyone 접근 권한 여부
- 실행 가능한 파일들에 everyone 접근 권한 확인 결과, everyone 접근 권한 없음 확인
> 결론 : .exe 파일에 대해서 실행되도록 매핑되었으나, isapiCgiRestrion 설정에서 특정 파일들 외에 실행되지 않도록 설정하고 있고, 실행 가능한 파일들에 대해 권한 설정도 잘되어있으므로 양호처리
'인프라진단 > 진단 항목 정리' 카테고리의 다른 글
| [U-12] 세션 종료 시간 설정 (1) | 2026.02.27 |
|---|---|
| [U-24] 사용자, 시스템 환경변수 파일 소유자 및 권한 설정 (0) | 2026.02.27 |
| [W-18]IIS DB 연결 취약점 점검 (1) | 2025.09.10 |
| [W-21] IIS 미사용 스크립트 매핑 제거 (0) | 2025.09.10 |
| [DBM-011] 감사 로그 수집 및 백업 미흡_AWS RDS 환경 (0) | 2025.08.20 |