
헤드리스 크롬을 사용하는 프로토타입 오염 스캐너

Plution은 URL 페이로드를 통해 클라이언트 측 프로토타입 오염에 취약한 페이지를 대규모로 스캔하는 편리한 방법입니다. 기본 설정에서는 다음 문서에 나와 있는 11가지 사례를 탐지할 수 있는 하드코딩된 페이로드를 사용합니다: https://github.com/BlackFan/client-side-prototype-pollution/tree/master/pp
이것은 만능 도구가 아닙니다. 프로토타입 오염은 복잡한 문제입니다. 이 도구는 수동으로 할 수 없는 일을 해주지 않습니다. 세련되고 버그 없는 슈퍼 도구가 아닙니다. 기능은 하지만 코드가 조잡하며 최상의 경우 알파 수준으로 간주됩니다.
Plution은 제공된 URL에 페이로드를 추가하고, 헤드리스 크롬으로 각 URL로 이동한 후 페이지에서 자바스크립트를 실행하여 프로토타입이 성공적으로 오염되었는지 확인합니다.
기본 스캔, 화면에만 출력:
cat URLs.txt | plution
하드코딩된 페이로드 대신 사용자 제공 페이로드로 스캔:
cat URLs.txt|plution -p '__proto__.zzzc=example'
사용자 정의 페이로드 참고: 주입하려는 변수는 반드시 "zzzc"라고 호출되거나 렌더링되어야 합니다. 그 이유는 각 페이지에서 오염을 확인하기 위해 'window.zzzc'가 실행되기 때문입니다.
출력:
'-o' 다음에 위치를 전달하면 성공적으로 오염된 페이지의 URL만 출력합니다.
동시성:
'-c' 옵션을 전달하여 동시에 실행할 작업 수를 지정합니다 (기본값은 5).
어떻게 설치하나요?
go get -u github.com/raverrr/plution
왜 window.zzzc가 정의되었는지 확인하는 것으로 구체적으로 제한하나요?
zzzc는 프로토타입에 이미 존재할 가능성이 낮은 짧은 패턴입니다. 자바스크립트 측면에서 더 많은 자유를 원한다면 https://github.com/detectify/page-fetch를 대신 사용하세요.
더 구체적인 질문이 있나요?
트위터 @divadbate로 물어보세요.