최근 ZAP의 Extension 중 selenium 관련 업데이트가 있었습니다. 무심히 Change 내용을 봤다가 “Support for browser extension” 문구를 보자마자 반가운 마음에 바로 글 작성을 시작헀죠 😎
ZAP의 내장 브라우저인 ZAP Browser(Manual Explore)는 지금까지 Firefox, Chrome 등의 Extension 설치는 되었으나 다시 세션을 열게되면 Extension 또한 날아가는 이슈가 있었습니다. 이는 ZAP Browser에서 사용자가 추가로 설치한 정보나 캐시, 쿠키등을 저장하지 않기 때문이였죠. 그리고 저 또한 ZAP Core팀에 이 부분을 지원해달라고 나름 여러번 요청을 했었던 것 같습니다.
https://github.com/zaproxy/zap-extensions/releases/tag/selenium-v15.5.0
어쨌던 이번 업데이트로 이제 Manual Explore 등 ZAP Browser를 열 때 미리 지정한 browser extension을 자동으로 로드하여 사용할 수 있게 되었습니다.
그럼 살펴보도록 하죠!
ZAP Browser
먼저 ZAP Browser를 한번도 사용해보시지 않은 분들이 있을까 싶어서 간단하게 소개해 봅니다. ZAP에서 Manual Explore 또는 Top level Toolbar에 있는 브라우저 아이콘을 누르면 ZAP에 내장된 ZAP Browser을 열게 됩니다.
이렇게 내장된 브라우저를 로드하게 되면 인증서 설정 등 기본 사용에 필요한 세팅을 따로 하지 않아도 되서 굉장히 편리합니다. BurpSuite에서도 비슷하게 크로미움 기반의 브라우저를 내장하고 있습니다.
Preset a firefox extension
Check
시작하기 앞서 먼저 포맷을 체크해봅시다. Options > Selenium 을 들어가보면 Browser Extensions
라는 새로운 옵션이 생겼습니다. 여기서 Browser extension을 지정해주면 되는데요. 아래 이미지의 Files of Type
을 보면 .xpi
와 .crx
확장자를 받도록 되어 있습니다. 해당 확장자는 각각 Firefox와 Chrome의 Extension package 확장자입니다.
Download
그럼 실제로 원하는 확장 기능을 다운받아 설치해봅시다. 저는 Firefox 기준으로 진행했고, Firefox Add-ons 사이트에서 원하는 확장 기능 페이지로 들어줍시다. 이 때 설치하기(전 safari로 붙어서 설치하기가 나타나지 않았네요)가 아닌 파일 다운로드를 선택하면 .xpi
파일이 다운로드됩니다.
Add browser extension in ZAP
다음 Options > Selenium 에서 방금 받은 .xpi
파일을 Add로 추가해주면 Enable/Disable 여부를 선택할 수 있고 이후에 ZAP Browser 를 실행 시 Browser Extension이 설치된 상태로 구동되게 됩니다.
Preset a chrome extension
Chrome의 경우 chrome 웹 스토어에서 crx 파일을 직접 다운로드 하도록 제공하진 않습니다. 그래서 crx-extractordownloader 같은 별도의 extension을 통해 crx 파일을 생성해야 합니다.
crx-extractordownloader를 설치 후 chrome 웹 스토어 페이지에서 도구 모음 또는 context menu(우클릭)에서 Download as CRX 라는 메뉴가 생기며, 이를 통해 해당 Extension을 crx 파일로 다운로드 받을 수 있습니다.
References
- https://github.com/zaproxy/zap-extensions/releases/tag/selenium-v15.5.0
- https://www.zaproxy.org/blog/2021-11-26-launching-browsers-with-extensions/
- https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda