
jsluice++는 CLI 도구 jsluice를 사용하여 JavaScript 트래픽의 수동(passive) 및 능동(active) 스캐닝을 위해 설계된 Burp Suite 확장 프로그램입니다.
jsluice++는 CLI 도구 jsluice를 사용하여 JavaScript 트래픽을 수동 및 능동 스캔하도록 설계된 Burp Suite 확장 프로그램입니다.
이 확장 프로그램은 jsluice의 기능을 활용하여 정적 JavaScript 파일에서 URL, 경로, 비밀값을 추출하고 이를 Burp Suite와 통합하여 Burp Suite의 Sitemap 또는 Proxy에서 JavaScript 트래픽을 쉽게 스캔할 수 있게 하며, 데이터 검사를 위한 사용자 친화적인 인터페이스와 다양한 추가 유용한 기능도 제공합니다.
요구 사항:
jython 확장 프로그램을 처음 설치하는 것이 아니라면 3단계로 건너뛰어도 됩니다.
go install github.com/BishopFox/jsluice/cmd/jsluice@latest (jsluice 바이너리가 $PATH에 있어야 합니다. 그렇지 않으면 확장 프로그램이 작동하지 않습니다.)이 확장 프로그램은 Burp Suite의 컨텍스트 메뉴에 항목을 추가하여 Burp Suite의 Sitemap 탭에서 응답을 쉽게 처리할 수 있게 합니다.
이렇게 하려면 사이트맵 트리에서 호스트를 마우스 오른쪽 버튼으로 클릭하거나 사이트맵 테이블의 항목을 마우스 오른쪽 버튼으로 클릭한 다음 Burp Suite 컨텍스트 메뉴에서 Extensions->jsluice++->Process selected item(s)를 선택하세요.
사이트맵 트리에서 항목을 처리할 때 확장 프로그램은 선택한 각 항목의 사이트맵을 가져옵니다 (여러 호스트를 처리할 수 있습니다).

기본값: 꺼짐
수동 스캔을 켜면 확장 프로그램이 HTTP 핸들러를 등록하고 Burp Suite의 Proxy를 통과하는 트래픽의 응답을 처리합니다 (수동 스캔을 활성화할 때는 범위 내만 기능을 사용하여 노이즈를 줄이는 것이 좋습니다).
확장 프로그램은 .js 파일 확장자나 JavaScript MIME 유형과 성공 상태 코드(2xx)를 가진 모든 URL을 jsluice의 urls 모드를 사용하여 처리합니다.
처리된 JavaScript 파일은 임시로 로컬 ".jsluicepp" 디렉터리에 저장되며, jsluice가 처리를 완료한 후 제거됩니다.
jsluice가 데이터를 반환하면 URL과 연결된 호스트가 Hosts 목록에 추가됩니다. jsluice의 결과를 보려면 호스트와 원하는 파일을 선택하기만 하면 됩니다 (여러 파일을 선택할 수 있습니다).
참고: 동일한 URL(GET 매개변수 제외)은 확장 프로그램이 다시 로드될 때까지 두 번 이상 처리되지 않습니다. 모니터링되는 URL에는 이 규칙이 적용되지 않습니다.
Files 목록의 모든 파일은 확장 프로그램으로 모니터링할 수 있습니다. 그러려면 파일을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 "Monitor URL" 옵션을 선택하면 됩니다 (URL 모니터링을 중지하려면 이 단계를 반복하세요).
새 URL이 모니터링되면 해당 세부 정보가 .jsluicepp/monitored_urls.txt에 저장되고, jsluice의 출력 사본이 로컬 .jsluicepp/monitored_files/{host}_{filename_hash}에 저장됩니다(비밀값 제외).
모니터링되는 파일은 Files 목록에서 녹색으로 표시됩니다.
모니터링되는 URL에 요청을 보내는 비율은 Monitor Interval 선택기에서 선택한 값에 따라 결정됩니다.
모니터링 간격 옵션:
jsluice가 로컬에 저장된 사본과 다른 데이터를 반환하면 다음 팝업 대화상자로 알림을 받게 됩니다:

파일의 로컬 저장 사본은 .jsluicepp/monitored_files/{host}_{filename_hash}.old로 이동되고 새 파일의 새 사본이 저장됩니다.
확장 프로그램에서 모니터링되는 파일을 선택하면 새 행/수정된 행은 녹색으로, 수정된 행/삭제된 행의 이전 버전은 빨간색으로 표시됩니다. 예:

모니터링되는 URL이 성공 상태 코드(2xx)가 아닌 응답을 반환하거나 jsluice가 출력을 반환하지 않으면 URL 모니터링을 중지할지 묻는 팝업 대화상자가 표시됩니다. "Yes"를 선택하면 파일의 모든 로컬 사본이 제거됩니다.

URL/Paths 결과 테이블의 모든 행은 행을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 "Send to Repeater" 옵션을 선택하여 Burp Suite의 Repeater로 보낼 수 있습니다.
쿼리 파라미터, 본문 파라미터 및 헤더가 존재하는 경우 포함됩니다.
URL/Path 열이 "http://" 또는 "https://" 또는 "//"로 시작하면 URL/Path 열에서 호스트가 추출되고, 그렇지 않으면 선택한 호스트가 사용됩니다.
Headers 열에 application/json or application/xml or text/xml 값을 가진 content-type 헤더가 있으면 요청 본문이 그에 맞게 포맷됩니다.
기본값: 켬
선택하면 "Secrets" 결과 테이블이 UI에 추가되며, urls 모드가 완료된 후 확장 프로그램이 파일에 jsluice의 secrets 모드를 사용합니다. 고유한 비밀값이 발견되면 호스트가 빨간색으로 표시되고 옆에 🤫 이모지가 표시됩니다. 예:

사용자 지정 패턴 구성을 사용하려면 코드에서 'secrets_command' 변수를 수정하면 됩니다.
기본값: 꺼짐
이 옵션을 선택하고 Secrets 체크박스도 선택한 경우, 새로운 고유 비밀값이 발견되면 팝업 대화상자로 알림을 받게 됩니다. 대화상자는 15초 후 자동으로 닫힙니다. 예시 대화상자:

처리된 모든 파일의 URL은 Files 목록에서 파일을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 "Copy URL" 옵션을 선택하여 클립보드에 복사할 수 있습니다.
포함/제외 매치 필터 기능은 결과 테이블의 URL/Path 열을 대상으로 설계되었습니다. 포함 필터를 추가하면 URL/Path 열에 해당 포함 매치 필터가 포함된 행만 결과 테이블에 표시됩니다. 반대로 제외 필터를 추가하면 URL/Path 열에 해당 제외 매치 필터가 있는 행이 결과에서 제외됩니다. 여러 필터를 적용할 수 있습니다.

기본값: 꺼짐
선택하면 확장 프로그램은 Burp Suite의 범위(scope)를 사용하여 URL을 처리할지 여부를 결정하며, 범위를 벗어난 호스트는 Hosts 목록에 표시되지 않습니다.
기본값: 꺼짐
선택하면 .js 파일 확장자/MIME 유형을 가진 URL 외에도 확장 프로그램은 HTML MIME 유형의 응답을 찾습니다. 그러한 응답이 발견되면 확장 프로그램은 응답 본문에서 모든