Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-36899 — CVE-2023-36899 취약점의 재현 환경 및 도구로, ASP.NET 프레임워크의 쿠키 없는 세션 인증 우회를 대상으로 합니다. | Kitploit
도구/GitHubGitHub/midisec/cve-2023-36899
Authentication & AuthorizationVulnerability AnalysisExploitationIDS/IPS EvasionWeb Application ExploitationPenetration Testing
GitHubmidisec/cve-2023-36899

CVE-2023-36899

CVE-2023-36899 취약점의 재현 환경 및 도구로, ASP.NET 프레임워크의 쿠키 없는 세션 인증 우회를 대상으로 합니다.

저장소 보기
3353년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-36899

CVE-2023-36899 취약점의 재현 환경 및 도구로, ASP.NET Framework의 쿠키리스(cookieless) 세션 인증 우회를 대상으로 합니다.

Cookieless DuoDrop: ASP.NET Framework의 IIS 인증 우회 및 앱 풀 권한 상승 (CVE-2023-36899)

현대 웹 개발에서 쿠키는 세션 ID를 전송하는 가장 선호되는 방법이지만, .NET Framework는 URL에 세션 ID를 직접 인코딩하는 대체 방법도 제공합니다. 이 기술은 .NET Framework의 "쿠키리스(cookieless)" 기능으로 알려져 있습니다. 많은 개발자와 보안 테스터는 실제 애플리케이션에서 드물게 사용되므로 이 옵션을 간과합니다. 그러나 이것은 세션 고정, 세션 하이재킹, HTML 삽입, 크로스 사이트 스크립팅과 같은 클라이언트 측 취약점을 발견할 수 있는 보물창고가 되었습니다. 또한 이 기능은 쿠키리스 방식을 인식하도록 구성되지 않은 경로 기반 방화벽 규칙을 우회하는 데 악용될 수 있습니다. 본질적인 보안 문제로 인해 .NET Core 및 이후 .NET 버전에서는 쿠키리스 기능이 생략되었습니다. 그러나 여전히 클래식 .NET Framework를 사용하는 수많은 웹 애플리케이션이 있다는 점을 잊지 말아야 합니다.

핵심 사항:

  1. .NET Framework의 쿠키리스 기능은 보호된 디렉터리 또는 IIS URL 필터에 의해 차단된 디렉터리에 접근하는 데 악용될 수 있습니다.
  2. 쿠키리스 기능을 사용하여 IIS의 인증 또는 필터 검사를 우회할 수 있습니다.
  3. 또 다른 문제는 IIS가 애플리케이션 풀을 관리하는 방식과 관련되어 있으며, 권한 상승 또는 보안 우회로 이어질 수 있습니다.
  4. .NET Framework의 쿠키리스 기능을 통해 IIS 애플리케이션이 자체 애플리케이션 풀 대신 상위 애플리케이션 풀을 사용하여 실행되도록 강제할 수 있습니다.

취약점 상세 정보:

1. IIS 제한 경로 우회

.NET Framework의 쿠키리스 기능은 보호된 디렉터리 또는 IIS URL 필터에 의해 차단된 디렉터리에 접근하는 데 악용될 수 있습니다. 예를 들어, victim.com 웹사이트에서 다음 상황을 고려해 보세요:

  • /protected/ 디렉터리에 있는 페이지: /webform/protected/target1.aspx - 이 디렉터리는 기본 인증을 강제합니다.
  • /bin/ 폴더로 임시 이동된 페이지: /webform/bin/target2.aspx - 접근할 수 없게 됩니다.

일반적으로 이러한 URL을 통한 페이지 접근은 IIS에서 차단됩니다:

  • http://10.0.2.15:8080/webform/protected/target1.aspx
  • http://10.0.2.15:8080/webform/bin/target2.aspx

그러나 쿠키리스 기능을 활용하면 다음 패턴을 통해 이러한 페이지에 접근할 수 있습니다:

  • http://10.0.2.15:8080/webform/(S(X))/prot/(S(X))ected/target1.aspx
  • http://10.0.2.15:8080/webform/(S(X))/b/(S(X))in/target2.aspx

2. 애플리케이션 풀 혼동

IIS가 애플리케이션 풀을 관리하는 방식은 권한 상승 또는 보안 우회로 이어질 수 있습니다. .NET Framework의 쿠키리스 기능을 조작하여 IIS 애플리케이션이 자체 애플리케이션 풀 대신 상위 애플리케이션 풀을 사용하여 실행되도록 강제할 수 있습니다. 예를 들어:

  • 웹사이트 루트(/)는 DefaultAppPool 애플리케이션 풀을 사용하여 실행됩니다.
  • /classic/ 애플리케이션은 .NET v4.5 Classic 애플리케이션 풀을 사용합니다.
  • /classic/nodotnet/ 애플리케이션은 관리 코드를 지원하지 않는 NoManagedCodeClassic 애플리케이션 풀을 사용합니다.

AppPoolPrint.aspx라는 C# 파일은 위의 모든 애플리케이션에서 접근할 수 있으며 현재 애플리케이션 풀 이름을 표시합니다. 쿠키리스 기능을 두 번 사용하면 상위 애플리케이션 풀로 이 페이지를 실행할 수 있습니다:

  • /(S(X))/(S(X))/classic/AppPoolPrint.aspx -> DefaultAppPool
  • /(S(X))/(S(X))/classic/nodotnet/AppPoolPrint.aspx -> DefaultAppPool
  • /classic/(S(X))/(S(X))/nodotnet/AppPoolPrint.aspx -> .NET v4.5 Classic

이를 통해 /classic/nodotnet/의 페이지(관리 코드를 실행하지 않아야 하는)에서도 상위 애플리케이션 풀로 ASPX 페이지를 실행할 수 있습니다. 이러한 동작은 IIS에서 권한 상승으로 이어질 수 있습니다.

취약점 재현:

1. 환경 준비:

  • 운영 체제: Windows Server 버전(예: Windows Server 2016 또는 2019)을 설치합니다.
  • 웹 서버: IIS(Internet Information Services)를 설치합니다.
  • 개발 프레임워크: .NET Framework(.NET Core 또는 .NET 5+ 아님)를 설치합니다.

IIS 설치 시 다음 항목을 선택합니다.

  • 웹 서버:
    • 일반 HTTP 기능:
      • 정적 콘텐츠
      • 기본 문서
      • 디렉터리 찾아보기
      • HTTP 오류
    • 애플리케이션 개발:
      • .NET 확장성(.NET Framework 버전: 4.5에 해당)
      • ASP.NET(.NET Framework 버전: 4.5에 해당)
      • ISAPI 확장
      • ISAPI 필터
  • 상태 및 진단:
    • HTTP 로깅
    • 요청 모니터
    • 로깅 도구
  • 보안:
    • 요청 필터링
    • 기본 인증
    • Windows 인증

2. IIS 구성:

  1. IIS 관리자를 엽니다.
  2. 새 웹 사이트를 만듭니다.
  3. 새 사이트에 /webform, /webform/protected, /webform/bin과 같은 여러 디렉터리를 만듭니다.
  4. /protected/ 디렉터리에서 기본 인증을 설정합니다.
  5. /webform/bin/target.aspx 페이지를 /bin/ 폴더로 이동하여 직접 접근할 수 없게 합니다. (bin 디렉터리는 민감한 컴파일된 프로그램이 포함되어 있으므로 IIS에서 기본적으로 접근을 허용하지 않습니다)

3. 테스트 페이지 생성:

  1. /webform/protected/ 디렉터리에 target.aspx라는 페이지를 만듭니다.
  2. /webform/bin/ 디렉터리에 target.aspx라는 페이지를 만듭니다.
  3. 각 애플리케이션에 현재 애플리케이션 풀 이름을 표시할 수 있는 AppPoolPrint.aspx라는 페이지를 만듭니다.

target.aspx 파일 테스트 내용:

root@kitploit:~
<%@ Page Language="C#" %>
    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ASPX Test</title>
</head>
<body>
    This is a static text. <br>
    Dynamic text: <%= DateTime.Now.ToString() %>
        </body>
</html>

루트 디렉터리의 web.config 파일 테스트 내용:

root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="UseCookies" />
    </system.web>
</configuration>

여기서 는 웹사이트가 일부 기본 세션 정보 등을 저장하는 데 쿠키를 사용한다는 의미이며, 기본값도 이와 같습니다.

4. 취약점 재현:

  1. /webform/protected/target.aspx 및 /webform/bin/target.aspx 페이지에 직접 접근을 시도합니다. 차단되거나 인증을 요구받을 것입니다.

2023-08-16 06-25-21屏幕截图.png

http://10.0.2.15:8080/webform/(S(X))/b/(S(X))in/target1.aspx 를 사용하여 성공적으로 접근 2023-08-16 06-33-20屏幕截图.png

  1. 쿠키리스 기능을 사용하여 이러한 페이지에 접근을 시도합니다. 예:
    • https://yourserver/webform/(S(X))/prot/(S(X))ected/target.aspx
    • https://yourserver/webform/(S(X))/b/(S(X))in/target.aspx 인증이나 필터를 우회하여 이러한 페이지에 접근할 수 있어야 합니다.

수정 권장 사항

  1. /S(X)) 패턴을 WAF에서 차단합니다.
  2. 서버에 해당 패치를 설치합니다. https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36899

존재할 수 있는 payload 목록:

root@kitploit:~
/config/(S(X))/a/(S(X))pp/settings.xml
/config/(S(X))/settings.xml
/config/(S(X))/database.yml
/admin/(S(X))/config.xml
/a/(S(X))ppled/resource
/dashboard/(S(X))/data.json
/logs/(S(X))/error.log
/api/v1/(S(X))/config.json
/admin/s/(S(X))ettings/config.xml
/manage/s/(S(X))cripts/script.js
/dashboard/d/(S(X))ata/data.json
/config/dat/(S(X))abase/database.yml
....

참고:

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36899 https://soroush.me/blog/2023/08/cookieless-duodrop-iis-auth-bypass-app-pool-privesc-in-asp-net-framework-cve-2023-36899/ https://nvd.nist.gov/vuln/detail/CVE-2023-36899 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36899

도구 다운로드