###### tags: `tools` # ZAP-CLI 安裝 **必須先安裝好 GUI 版,才有辦法接著設定 CLI 所需功能!!** 先運行此命令 ``` pip install --upgrade zapcli ``` 開啟 GUI 版,打開選項,裡面有 API key ![](https://i.imgur.com/8y63beT.png) 將它填入下方 API Key ```bash= export ZAP_PORT=8090 export ZAP_PATH=/usr/local/bin/zap.sh export ZAP_API_KEY=<your API key> ``` 然後將這三行新增到 ~/.bashrc 儲存後運行 ``` source ~/.bashrc ``` 接著創建一個資料夾專門讓 ZAP 丟 log,路徑可以自定義,如果不知道怎做就接著跟我做一樣的吧 在家目錄輸入如下指令 ```bash= mkdir zap-log cd zap-log ``` 然後輸入 ```bash= zap-cli --log-path . start # 之後運行都要在這個路徑下執行 ``` 如果它正常運行如下圖 ![](https://i.imgur.com/35TZnEN.png) 那代表正常 如果是如下圖 ![](https://i.imgur.com/MI2fNLJ.png) 那代表權限不足或者 zap 丟 log 時可能在沒有權限的路徑下或者你沒裝好 當它正常運行後,可以開另一個 terminal 輸入 ```bash= zap-cli status # 查看運行狀態 zap-cli shutdown # 關閉運行 ``` 跟我下圖一樣就沒問題了 ![](https://i.imgur.com/QkVik6c.png) 接下來創建一個腳本 open-urls.sh 在 log 路徑下 ```bash= #!/bin/bash input="urls.txt" while IFS= read -r line do zap-cli open-url "$line" done < "$input" ``` 給它可執行的權限 ```bash= chmod +x open-urls.sh ``` 創建 urls.txt 文件在 log 路徑下,在裡面丟你要測試的網址,如 http://127.0.0.1/Web 之後運行 ```bash= bash open-urls.sh ``` 然後運行 ```bash= zap-cli -v active-scan --recursive -u mydeveloperplanet "http://127.0.0.1/" ``` 然後生成報告 ```bash= zap-cli -v report -o ./zap-log/report-zap-cli-first-scan.html -f html ``` 結束