
Rust로 작성된 클라이언트 측 프로토타입 오염 취약점을 스캔하는 빠른 도구입니다. 🦀
간단히, 릴리즈 페이지에서 미리 빌드된 바이너리를 다운로드하여 실행하세요!
| 참고: Rust가 설치되어 있어야 합니다! |
cargo 사용:
▶ cargo install ppfuzz
소스 코드에서 수동으로 실행 파일 빌드:
▶ git clone https://github.com/dwisiswant0/ppfuzz
▶ cd ppfuzz && cargo build --release
# 바이너리 파일 위치: target/release/ppfuzz
ppfuzz는 chromiumoxide를 사용하며, Chrome 또는 Chromium 브라우저가 설치되어 있어야 합니다.
CHROME 환경 변수가 설정되어 있으면 기본 실행 파일로 사용합니다. 그렇지 않으면 표준 위치에서 google-chrome-stable, chromium, chromium-browser, chrome, chrome-browser 파일 이름을 검색합니다. 실패할 경우 (MacOS의) /Applications/Google Chrome.app/... 또는 (Windows의) 레지스트리를 참조합니다.

위 데모에서 볼 수 있듯이 (고화질로 보려면 클릭) ppfuzz는 객체와 포인터 쿼리를 추가하여 프로토타입 오염 취약점을 확인합니다. 취약한 경우 사용된 스크립트 가젯을 식별하고 XSS, 우회 또는 쿠키 주입으로 영향을 확대할 수 있는 추가 페이로드 정보를 표시합니다.
ppfuzz 사용법은 매우 간단합니다!
▶ ppfuzz -l FILE [OPTIONS]
-l/--list를 사용하여 입력 목록 제공:
▶ ppfuzz -l FILE
I/O 리디렉션을 사용하여 목록을 제공할 수도 있습니다:
▶ ppfuzz < FILE
— 또는 다른 명령 출력에서 연결:
▶ cat FILE | ppfuzz
취약한 대상만 표시/오류 숨기기:
▶ ppfuzz -l FILE 2>/dev/null
지원하는 모든 옵션은 다음과 같습니다:
▶ ppfuzz -h
| 플래그 | 설명 | 기본값 |
|---|---|---|
| -l, --list | 대상 URL 목록 | |
| -c, --concurrency | 동시성 수준 설정 | 5 |
| -t, --timeout | 연결 허용 최대 시간 (초) | 30 |
| -h, --help | 도움말 정보 출력 | |
| -V, --version | 버전 정보 출력 |
제가 ppfuzz를 시작했을 때 Rust에 대한 지식이 거의 없었고, 많은 단점이나 보안 취약점이 있을 수 있다고 생각합니다. 따라서 모든 기여를 환영합니다. 물론 버그 신고 및 제안도 감사히 받습니다. 일부 환경은 아직 테스트되지 않았습니다.
이 도구는 학습 매체일 뿐만 아니라, page-fetch를 사용하여 프로토타입 오염 확인을 자동화하는 방법에 대한 @R0X4R의 팁에서 영감을 받아 만들어졌습니다.
이 도구에는 여러 기여가 포함되어 있으므로, 다음 사용자분들의 도움과 자료에 공개적으로 감사드립니다:
Fourty2#4842 (디스코드) - 유용한 해결 방법을 제공해 주셨습니다.ppfuzz는 MIT 라이선스로 배포됩니다. LICENSE 파일을 참조하세요.