
잘못 구성된 Firebase 데이터베이스 악용
취약하거나 잘못 구성된 Firebase 데이터베이스 익스플로잇
비표준 Python 모듈:
다음 명령이 성공적으로 실행되면 스크립트를 사용할 준비가 된 것입니다:
git clone https://github.com/Turr0n/firebase.git
cd firebase
pip install -r requirements.txt
python3 firebase.py [-h] [--dnsdumpster] [-d /path/to/file.htm] [-o results.json] [-l /path/to/file] [-c 100] [-p 4]
인수:
-h 도움말 메시지 표시
-d 다운로드된 HTML 파일의 절대 경로.
-o 출력 파일 이름. 기본값: results.json
-c Alexa의 상위 1m 도메인에서 크롤링. 크롤링할 도메인 수 설정 (예: 100). 최대 1000000
-p 실행할 프로세스 수. 기본값: 1
-l 크롤링할 DB 목록이 포함된 파일 경로. 한 줄에 DB 이름 하나. 이 옵션은 -d 또는 -c와 함께 사용할 수 없음
--dnsdumpster DNSDumpster API를 사용하여 DB 수집
--just-v "취약하지 않은" DB 무시
--amass amass 스캔 출력 파일 경로 ([-o] 인수)
예시:
python3 firebase.py -p 4 -f results_1.json -c 150 --dnsdumpster 이 명령은 Alexa 파일의 처음 150개 도메인과 DNSDumpster가 제공하는 DB를 조회합니다. 결과는 results_1.json에 저장되며 전체 스크립트는 4개의 병렬 프로세스를 사용하여 실행됩니다.
스크립트는 수집된 취약한 데이터베이스와 덤프된 내용을 포함하는 JSON 파일을 생성합니다. 각 데이터베이스에는 상태가 있습니다:
더 나은 결과를 얻으려면 pentest-tools.com으로 이동하여 서브도메인 스캐너에 다음 도메인을 입력하세요: firebaseio.com. 스캔이 완료되면 페이지 HTML을 저장(CRL+S)하고 -d [경로] 인수를 사용하세요. 그러면 스크립트가 해당 서비스에서 발견된 서브도메인을 분석할 수 있습니다. 추가 서브도메인 크롤러가 지원될 수 있습니다.
이제 @caffix의 amass 스캐너를 지원합니다! -o 인수를 사용하여 해당 도구로 firebaseio.com에 대해 원하는 스캔을 실행하면 스크립트가 출력 파일을 처리하고 발견된 DB를 크롤링할 수 있습니다.
Firebase DB는 다음 구조를 사용합니다: https://[DB 이름].firebaseio.com/. -l [경로] 인수를 사용하는 경우, 제공된 파일에는 한 줄에 [DB 이름]이 하나씩 포함되어야 합니다. 예:
airbnb
twitter
microsoft
해당 파일을 사용하면 다음 DB를 확인합니다: https://airbnb.firebaseio.com/.json, https://twitter.firebaseio.com/.json, https://microsoft.firebaseio.com/.json
이 스크립트는 appthority의 Mobile Threat Team의 작업을 기반으로 합니다. 연구에 대한 모든 크레딧은 그들에게 있습니다.
Alexa의 100만 개 상위 도메인 파일에서 도메인을 다운로드하기 위해 @evilpacket의 스크립트가 사용됩니다.