ZAP Passive Scan Tags와 Neonmarker 그리고 Highlighter

많은 양의 Web URL을 분석하게 되면 눈에 잘 안들어오고, 중요한 부분들을 놓치기 마련인데 highlight 관련 기능들은 조금 더 중요한 포인트에 집중을 할 수 있도록 포인트를 잡아주기 때문에 개인적으로는 잘 활용하는게 분석함에 있어서 큰 도움이 된다고 생각합니다.

오늘은.. ZAP에서 Highlight에 관련된 내용으로 이야기하려고 합니다 :D

Passive Scan tags

Passive Scan tags는 zap에서 passive scan rule에서 사용하는 정의된 패턴입니다. Options > Passive Scan Tags에서 내용을 보거나 내용을 추가/수정/삭제할 수 있습니다.

여기에 명시된 Tag들은 Passive 스캔 시 Scan script에서 사용하거나, History 탭에서 아래와 같이 tags column으로 노출되어 해당 요청이 어떠한 패턴의 요청인지 확인할 수 있게됩니다.

Add passive scan tag

Passive Scan Tags에서 Add 버튼을 눌러서 추가할 수 있는데, 아래와 같이 이름, 태그이름, 탐지할 패턴 등을 넣어주어 추가가 가능합니다. 각각의 항목은 이렇습니다.

Attribute Description
Name Tag 룰의 이름
Tag Tag 이름, 해당 정보가 History 탭에 노출됨
Request URL Regex Request 중 URL 부분에 정규식으로 걸러낼 패턴
Request Header Regex Request 중 Header 부분에 정규식으로 걸러낼 패턴
Response Header Regex Response header 내 정규식으로 걸러낼 패턴
Response Body Regex Response body 내 정규식으로 걸러낼 패턴

그래서 아래 이미지 처럼 추가해주면..

다음 요청 이후부터 정의된 패턴에 따라 처리된 tags를 확인할 수 있습니다.

Neonmarker

이러한 tags가 유용하게 사용될 수 있는 것 중 하나는 Neonmarker AddOn과 같이 사용할 때 입니다. Neonmarker AddOn History 탭 내 highlight 처리해주는 AddOn으로 별도의 액션으로 인한 처리가 아닌, 위에서 등록한 Tag 기반으로 자동으로 highlight 처리하게 됩니다. BurpSuite의 기본 highlight는 원하는 Request에 일일히 추가해줘야하는 형태인데 이에 비해 ZAP은 자동으로 추가하는 형태라 개인적으론 편리한 부분 중 하나입니다. (대신 BurpSuite는 Logger++ 이라는 좋은 logging 확장 기능이 있죠.. 😍)

Automated highlight

하나 실제로 적용해서 테스트해보면.. Neonmarker 탭을 연 다음 아까 만든 cullinan tag를 보라색으로 등록해보겠습니다.

Neonmarker는 기본값으로 Enable 되어 있어서 바로 아래와 같이 History 탭에서 색깔로 확인이 가능합니다.

룰 추가는 바로 윗 부분에 + 버튼을 통해 여러 룰에 대해 추가가 가능합니다.

Manual highlight

수동 추가는 BurpSuite의 highlight 처리와 비슷하게 각 Request에서 Context menu(우클릭)을 통해서 등록이 가능합니다. History 내 각 URL > 우클릭 > Context menu 중 Manage tags 클릭 으로 tag 추가 팝업을 띄울 수 있습니다.

여기서 아까 만든 cullinan을 추가해주면.. 아래와 같이 패턴에 포함되지 않은 요청도 tag에 추가할 수 있고, Neonmarker로 highlight 처리하여 확인할 수 있습니다.

Req/Res Highlight with Highlighter

Neonmarker랑 비슷한 AddOn인 Highlighter도 있습니다. 이 확장은 단순하게 Stirng 기반의 매치로 색상 표기가 가능합니다. 단 Tags와 같이 History 탭에 적용하는게 아닌 각 Req/Res의 Header, Body등에 Highlight가 가능합니다.

이렇게 cullinan 문자가 있는 경우 빨간색으로 표기하도록 해두면 Request & Response 등에서 자동으로 Highlight 처리된 cullinan 문자열을 볼 수 있습니다.