
Kentico CMS의 CVE-2019-12102 인증되지 않은 파일 업로드 취약점 자동 스캐너. 도메인을 확인하고 해시 매개변수로 검증하며 잠재적 및 확인된 취약 대상을 출력합니다.
CVE-2019-12102 스캐너는 Kentico CMS 버전 11~12에서 발생하는 인증되지 않은 파일 업로드 / 파일 노출 취약점을 스캔하는 자동화 도구입니다. 이 취약점은 /cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx 엔드포인트에 대한 부적절한 접근 제어로 인해 발생합니다. 이 도구는 해당 엔드포인트의 응답을 확인하여 도메인이 취약한지 여부를 판단하고, 잠재적 취약 및 확인된 취약 도메인을 별도의 파일로 저장합니다.
CVE-2019-12102 취약점을 통해 공격자는 다음을 수행할 수 있습니다:
hash 매개변수가 제대로 검증되지 않는 경우, 취약한 엔드포인트(/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx)에 인증 없이 접근할 수 있습니다. URL이 /CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=로 리디렉션되면 해당 도메인은 취약한 것으로 간주됩니다.
Ctrl+C 누름) 결과를 저장합니다.requests, colorama이 저장소를 클론합니다:
git clone https://github.com/Egi08/CVE-2019-12102-Scanner.git
cd CVE-2019-12102-Scanner
의존성을 설치합니다:
pip install -r requirements.txt
(requirements.txt 파일이 없으면 다음 내용으로 생성합니다):
requests
colorama
도메인 목록이 포함된 입력 파일(domains.txt)을 준비합니다. 한 줄에 하나의 도메인을 입력합니다. 예시:
example.com
another-example.com
vulnerable-site.com
python cve_2019_12102_scanner.py -l <input_file> -p <potentially_output_file> -c <confirmed_output_file>
-l, --list: 도메인 목록이 포함된 파일의 경로(필수)입니다.-p, --potentially: 잠재적 취약 도메인에 대한 출력 파일(선택 사항, 기본값: potentially_vulnerable.txt)입니다.-c, --confirmed: 확인된 취약 도메인에 대한 출력 파일(선택 사항, 기본값: confirmed_vulnerable.txt)입니다.python cve_2019_12102_scanner.py -l domains.txt -p potentially_vulnerable.txt -c confirmed_vulnerable.txt
[*] Starting vulnerability scanner for CVE-2019-12102...
[*] Checking: http://example.com
[-] Not Vulnerable: http://example.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[*] Checking: http://vulnerable-site.com
[+] Potentially Vulnerable: http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[+] Confirmed Vulnerable: http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
[+] Results saved:
Potentially Vulnerable domains saved to potentially_vulnerable.txt
Confirmed Vulnerable domains saved to confirmed_vulnerable.txt
potentially_vulnerable.txt)http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
confirmed_vulnerable.txt)http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
윤리적 테스트:
타임아웃:
requests.get 함수에서 타임아웃 값을 조정할 수 있습니다:
response = requests.get(full_url, timeout=20) # Timeout of 20 seconds
오류 처리:
안전한 저장:
Ctrl+C 누름) 결과는 출력 파일에 저장됩니다.해시 매개변수:
test_hash는 현재 예시 해시(13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf)를 사용합니다. 필요에 따라 조정하세요.기여를 환영합니다! 기여하고 싶다면 다음을 따르세요:
git checkout -b feature/your-feature-name
git commit -m "Add your changes here"
git push origin feature/your-feature-name
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 문서를 사용하면 스크립트를 GitHub에 쉽게 업로드하고 다른 사용자가 도구를 사용할 수 있도록 명확한 지침을 제공할 수 있습니다.