
반사된 쿼리 매개변수에 대한 경고를 표시하고, 현재 경로의 Wayback 아카이브 링크를 표시하며, 숨겨진 요소를 표시하고 비활성화된 요소를 활성화하는 Chrome/Firefox 브라우저 확장 프로그램입니다.
이것은 다음과 같은 작업을 수행할 수 있는 Chrome/Firefox 확장 프로그램입니다:
', " 및 < 문자가 인코딩되지 않은 채 반사되는지 확인합니다.Xnl Reveal 탭에 기록합니다.Xnl Reveal 탭에서).반사된 매개변수에 대한 알림을 표시하는 기능은 @renniepak이 Critical Thinking - Bug Bounty Podcast의 42화에서 자신만의 브라우저 확장 프로그램이 반사 항목을 알려준다고 언급한 댓글에서 영감을 받았습니다.
발견된 반사 매개변수의 수는 확장 프로그램 아이콘의 녹색 배지로 표시됩니다. 그러나 반사된 매개변수 이름 중 하나라도 @Jhaddix와 @G0LDEN_infosec의 "sus" 매개변수 연구에 설명된 범주에 속하면 배지는 빨간색이 됩니다. "sus" 매개변수가 있으면 해당 범주도 DevTools Xnl Reveal 탭, 알림 상자 및 클립보드 출력에 표시됩니다(예: boringParameter, query [XSS], path [LFI/RFI | SSRF | XSS]). 이는 제 GAP Burp 확장 프로그램의 "sus" 매개변수 식별과 동일합니다.
숨겨진 요소를 표시하고 비활성화된 요소를 활성화하는 기능은 이 Critical Thinking - Bug Bounty Podcast의 트윗에서 영감을 받았으며, 처음에는 브라우저 북마크로 만들었습니다.
확장 프로그램 아이콘은 일반적으로 검은색 배경
으로 표시되지만, 아이콘이 빨간색 배경
으로 나타나면 Wayback CDX Server API를 사용할 수 없을 가능성이 있음을 나타냅니다. 주요 기능이 비활성화되어 있어도 확장 프로그램은 10분마다 API 상태를 확인합니다.
중요: waymore, waybackurls 또는 gau와 같은 도구를 사용하여 Wayback 아카이브에서 URL을 가져오면 CDX Server API를 사용합니다. API가 다운되면 Wayback Machine에서는 어떤 데이터도 얻을 수 없고 다른 소스에서만 얻을 수 있습니다. 또한 문제가 발생했다는 것을 알려 주는 도구는 waymore뿐입니다.
이 저장소를 컴퓨터에 클론한 다음, Chrome 또는 Firefox 브라우저 중 어디에 설치할지에 따라 아래 지침을 따르세요:
Chrome에서 확장 프로그램 관리자를 엽니다: 케밥 메뉴(세로 점 3개) -> 확장 프로그램 -> 확장 프로그램 관리
개발자 모드가 켜져 있지 않으면 오른쪽 상단의 토글을 클릭하여 켭니다.
이제 왼쪽 상단의 압축 해제된 확장 프로그램 로드 버튼을 클릭합니다.
Xnl Reveal 폴더가 있는 디렉터리로 이동하여 선택합니다.
이제 확장 프로그램이 로드되었습니다. 도구 모음에서 확장 프로그램 아이콘을 클릭한 다음 핀 아이콘을 클릭하여 Xnl Reveal을 도구 모음에 고정할 수 있습니다.
중요: Firefox 확장 프로그램은 Firefox를 열 때마다 로드해야 합니다. 불행히도 Firefox 스토어에 추가할 수 없습니다. 그러려면 Manifest v3이어야 하기 때문입니다. Xnl Reveal은 Manifest v2를 사용해야 합니다(제가 해결할 수 없었으므로 다른 누군가가 알아낼 수 없다면요). Manifest v2는 보안 제한이 적어 작동이 가능합니다.
새 브라우저 탭에서 about:debugging으로 이동합니다.
페이지 왼쪽의 이 Firefox 제목을 클릭합니다.
임시 확장 프로그램 제목 아래의 임시 추가 기능 로드... 버튼을 클릭합니다.
다운로드한 저장소의 Firefox 폴더로 이동하여 아무 파일이나 선택한 다음 열기를 클릭합니다.
이제 확장 프로그램이 로드되었습니다. 도구 모음에서 확장 프로그램 아이콘을 클릭한 다음 설정 톱니바퀴 아이콘을 클릭하고 도구 모음에 고정을 선택합니다.
Xnl Reveal 로고를 마우스 오른쪽 버튼으로 클릭하고 옵션을 선택하면 옵션 페이지로 이동합니다.Xnl Reveal 로고를 마우스 오른쪽 버튼으로 클릭하고 확장 프로그램 관리를 선택한 다음 옵션 탭을 클릭하여 옵션 페이지를 확인합니다.
다음 옵션이 있습니다:
Canary token - 쿼리 매개변수의 반사를 테스트하기 위해 요청을 보낼 때 사용되고 확인되는 매개변수의 값입니다.Check for reflection of ' " < - 쿼리 매개변수의 반사를 테스트하기 위해 요청을 보낼 때 '",xnl 문자열이 Canary token 끝에 추가됩니다. 이러한 문자 중 하나라도 인코딩되지 않고 반사되면 이 역시 보고됩니다. 해당 문자를 전달하면 Canary token이 전혀 반사되지 않는 경우(예: WAF가 <를 차단하는 경우) Canary token만 사용하여 요청을 한 번 더 보냅니다.Show alert box for reflections - 이 옵션을 선택하고 팝업 메뉴에서 Show query parameter reflections를 선택한 경우(아래 참조), 반사되는 쿼리 매개변수에 대한 세부 정보가 포함된 브라우저 알림 상자가 표시됩니다.Copy reflection text to clipboard - 이 옵션을 선택하고 팝업 메뉴에서 Show query parameter reflections를 선택한 경우(아래 참조), 매개변수 반사가 발견되면 세부 정보가 DevTools Xnl Reveal 탭에 기록될 뿐만 아니라 사용자 클립보드에도 복사됩니다(요청한 경우 알림 상자에도 표시됨). 즉, 알림 상자나 DevTools 탭에서 세부 정보를 보자마자 메모로 이동하여 바로 붙여넣을 수 있습니다. 중요: 브라우저가 클립보드와 상호 작용하기 위해 사이트 권한을 요청할 수 있습니다. 이 기능을 사용하려면 이 권한을 수락해야 합니다.Param blacklist - 반사 여부를 확인하기 위해 카나리아 토큰으로 대체하고 싶지 않은 매개변수 이름의 쉼표로 구분된 목록입니다(예: param1,param2). 특정 매개변수를 테스트할 때 로그아웃 등 문제가 발생하는 경우 사용할 수 있습니다.Check delay - 페이지가 로드되면 설정에 따라 확장 프로그램이 숨겨진 요소를 표시하고 비활성화된 요소를 활성화하려고 시도합니다. 그러나 페이지의 일부는 동적으로 로드되어 원래 응답에 포함되지 않을 수 있습니다. 확장 프로그램은 페이지가 처음 로드된 후 이 지연 시간(초)이 지나면 다시 표시 및 활성화를 시도합니다.Wayback RegEx - Wayback 아카이브 엔드포인트를 기록하는 설정을 선택한 경우, 입력한 RegEx와 일치하는 wayback 엔드포인트만 DevTools 탭에 표시됩니다. 필드를 비워 두면 최대 1000개의 Wayback 엔드포인트가 반환됩니다. 중요: 입력한 RegEx는 대소문자를 구분하지 않는 것으로 처리됩니다.KNOXSS API Key - KNOXSS API 키를 입력합니다. 키가 저장되어 있고 팝업 메뉴에서 Show query parameter reflections가 활성화된 경우, 반사가 발견되면 URL이 자동으로 KNOXSS API로 전송됩니다. X-API-KEY 헤더는 저장된 키로 설정되고, 현재 페이지의 쿠키는 인증 헤더로 전달됩니다. KNOXSS API 응답은 Xnl Reveal DevTools 탭에 기록됩니다. API 호출은 비동기적으로 수행되므로 페이지 상호 작용을 차단하지 않습니다.Extension Scope 옵션:
Whitelist 또는 Blacklist - 이 옵션은 매개변수 반사 확인 및/또는 Wayback 엔드포인트 검색이 수행될 사이트를 결정합니다. 선택한 옵션에 따라 호스트는 처리를 위해 입력한 단어를 포함하거나 포함하지 않아야 합니다.Host match word to add - 화이트리스트 또는 블랙리스트에 추가하려는 호스트 이름에 존재하는 단어(또는 전체 호스트 이름)를 입력하고 Add 버튼을 클릭하여 범위 목록에 추가합니다. 예를 들어 Redbull 페이지만 실행하려면 redbull을 추가하고 화이트리스트로 설정하면 됩니다.Add - 입력한 단어를 범위 목록에 추가합니다.Remove selected - 선택한 단어를 범위 목록에서 제거합니다.Clear all - 범위 목록에서 모든 단어를 제거합니다.Save - 옵션을 변경한 경우 이 버튼을 클릭하여 향후 사용을 위해 저장합니다.Clear Saved URLs/Params - 확장 프로그램이 반사된 쿼리 매개변수를 찾고 있다면 동일한 URL/매개변수 조합에 대해 계속 알림을 받고 싶지 않을 것입니다. 따라서 보고된 항목은 이를 방지하기 위해 저장됩니다. 그러나 해당 항목에 대한 기록을 제거하려면 이 버튼을 클릭하여 제거할 수 있습니다. 마찬가지로, 동일한 요청을 Wayback 아카이브에 계속 보내고 싶지 않으므로 해당 요청도 저장되지만 이 버튼을 누르면 지울 수 있습니다.도구 모음에서 Xnl Reveal 로고를 클릭하면 팝업 메뉴가 표시됩니다.
다음 설정이 있습니다:
ENABLE REVEAL - 이 항목을 체크하지 않으면 확장 프로그램은 아무것도 하지 않습니다. 체크하면 다른 옵션 설정에 따라 방문한 웹 페이지(범위 내에 있는 경우)에서 특정 작업을 수행합니다.Show query parameter reflections - 이 항목을 체크하면 쿼리 매개변수가 있는 웹 페이지를 방문할 때 각 매개변수에 대해 백그라운드 요청이 수행되며, 각각을 옵션 페이지의 Canary token으로 번갈아 대체합니다. 응답의 매개변수 중 하나라도 토큰이 발견되면 DevTools Xnl Reveal 탭에 해당 페이지에서 반사된 URL과 모든 매개변수를 알려주는 메시지가 기록됩니다. 옵션이 선택된 경우 이 세부 정보는 브라우저 알림 상자에도 표시되고 사용자 클립보드에 복사될 수 있습니다. 또한 확장 프로그램은 발견된 반사 횟수가 표시된 배지를 보여줍니다.CHARSET IS NOT SPECIFIED IN RESPONSE! 메시지도 표시됩니다. 이는 이 블로그에 설명된 트릭으로 XSS가 더 쉬워질 수 있음을 의미합니다.Write Wayback endpoints to DevTools - 이 항목을 체크하면 브라우저에서 방문한 각 위치/경로에 대해 최대 1000개의 엔드포인트가 Wayback 아카이브에서 검색되어 DevTools Xnl Reveal 탭에 기록됩니다. 한 번 Wayback API로 전송된 위치/경로는 Clear Saved URLs/Params를 클릭하지 않는 한 다시 전송되지 않습니다.Show hidden elements - 이 항목을 체크하면 img, span, div를 제외한 숨겨진 요소가 표시됩니다. 빨간색 테두리와 세부 정보를 제공하는 빨간색 레이블과 함께 표시됩니다. 페이지가 동적인 경우 요소가 표시되지 않을 수도 있습니다.Enable disabled elements - 이 항목을 체크하면 img, span, div를 제외한 비활성화된 요소가 활성화됩니다. 빨간색 테두리와 세부 정보를 제공하는 빨간색 레이블과 함께 표시됩니다. 페이지가 동적인 경우 요소가 표시되지 않을 수도 있습니다. 언제든지 Run Now 버튼을 클릭하여 현재 로드된 페이지를 변경할 수 있습니다.웹페이지에서 마우스 오른쪽 버튼을 클릭하면 브라우저 컨텍스트 메뉴가 표시됩니다. 예를 들어 example.com에 있고 옵션에서 Whitelist가 선택된 경우 다음과 같이 표시됩니다: