ZAP 2.16 Review ⚡️
2025년 시작과 함께 ZAP 2.16이 릴리즈되었습니다 🎉⚡️
이번 업데이트는 기능적으로 추가된 부분들이 있어서 대표적인 기능 3가지 위주로 정리하면서 리뷰할까 합니다.
Client Spider
Client Spider란 기능이 추가됬습니다. 이는 기존 Spider, Ajax Spider와 다르게 DOM 기반에서 Spidering 하는 기능입니다. 지난 업데이트부터 Client Integration 등 실제 DOM 기반 분석을 강화하는 느낌이었는데, 이제 Spidering으로 조금 더 많은 URL을 찾을 수 있을 것으로 보입니다.
그래서 URL, Path, Query 뿐만 아니라 fragment도 식별할 수 있죠
참고로 ZAP 팀에서는 Ajax Spider를 점차 줄이고, Client Spider에 집중하여 개선할 예정이라고 합니다. 아무래도 비슷한 기술을 기반으로 비슷한 결과를 만드는 기능이라 DOM 내부 데이터까지 체크할 수 있는 Client Spider가 더 나은 기술임은 틀림없기 때문이죠. 아래 메뉴에서 Client Spider를 실행할 수 있습니다.
- Tools > Client Spider
- Context Menu > Attack > Client Spider
- Automation 에서 spiderClient
Detachable Tabs
이제 모든 탭은 별도의 윈도우로 분리할 수 있습니다. 여러 모니터에 나눠서 사용하시는 분들에겐 정말 반가운 소식이라고 생각합니다.
사용법은 간단합니다. 어떤 탭에서든 우클릭 시 Move Tab to New Window
메뉴가 나타나며, 클릭 시 별도의 창으로 분리됩니다.
Site Tree Export and Pruning
이제 YAML 포맷으로 Site 구조를 표현합니다. 파일로 쓰거나 읽을 수 있습니다.
- node: # The name of the node, as shown in the ZAP Sites Tree
url: # The URL it represents, present for all apart from the top node
method: # The HTTP method, present for all apart from the top node
responseLength: # The length of the response, where relevant
statusCode: # The HTTP status code, where relevant
data: # The names of the data parameters, if any, separated with '=&'s
children: # A list of child nodes, present for all nodes apart from the leaves
실제 YAML 구조
추가로 Prune 기능(Tools > Prune Site Nodes)이 추가되서 YAML로 저장된 파일의 URL은 모두 지우고, 새로 식별된 URL만 남길 수 있습니다.
YAML 로드 시 현재 Sites 중 YAML에 있는 URL이 제외되고 새로 추가된 URL만 남깁니다.
Conclusion
우선 제 눈에 들어온 대표적인 기능 3가지만 정리하였는데요, 이외에도 용도에 맞는 Policy 제공이나 Automation 개선 등이 있으니 관심 있으시다면 Release Note나 2.16 Milestone 읽어보시면 좋을 것 같습니다 :D