顯示具有 zap 標籤的文章。 顯示所有文章
顯示具有 zap 標籤的文章。 顯示所有文章

2026/07/13

大約講一下 zap docker 的版本及如何使用

版本有三種

Stable 
每個月第一週的週一更新

Weekly 
每週的週一更新

Nightly
每日更新


掃描方式有三種

Baseline Scan 
基本掃描

Full Scan 
完整掃描

API Scan 
API 掃描


如果想要使用每日更新版做完整掃描

docker run --cpus="18" --memory 32000MB --rm -v /tmp:/zap/wrk/:rw -t zaproxy/zap-nightly zap-full-scan.py -t https://aaa.com -r aaa.com.html



2025/08/12

前不久提到可以使用 zap docker 相當方便
但今天使用時有一些狀況
首先是如果不限制 docker 的 cpu ram 會把宿主几的資源全部吃完導致當几
必須使用 --cpu --memory 來設定
範例如下

--cpus="18" --memory 20000MB

接續以上的問題
在LXC就算增加2個以上的core 依然無法設定 --cpus 大於一
所以要使用vm才能設定多個cpu

另外硬碟使用率會隨著被scan的網站規模變大而變大
所以要有足夠的硬碟空間 否則也會有掃到一半當几的問題
要特別注意

2025/06/30

之前有提到 ZAP 使用shell scan 網站的方法 
今天找到單純使用docker的做法

最常用的方法如下 stable full-scan

docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t https://192.168.24.206 -r 192.168.24.206.html


以下是使用 docker stable     baseline scan
 
docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://192.168.24.206 -r 192.168.24.206.html


以下是使用 docker nightly update     baseline scan

docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t zaproxy/zap-nightly zap-baseline.py -t http://10.1.1.1 -r 10.1.1.1.html


實際跑起來快 而且方便許多

一樣用shell 來跑 

一行一個網站       

https://aa.bb.com
https://dd.ee.com

寫到  /tmp/site_to_test


#!/bin/bash

while read line
do

    echo "$line"

    docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t zaproxy/zap-nightly zap-baseline.py -t http://10.1.1.1 -r 10.1.1.1.html

#    docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t $line -r `echo $line|cut -d '/' -f 3`.html

done < /tmp/site_to_test 

如果沒使用 --rm 全部執行完成後會殘留很多 docker process
列出所有 docker process

docker ps -a

找到如下 process

CONTAINER ID   IMAGE                             COMMAND                   CREATED              STATUS                      PORTS                                       NAMES
0ec0935c4233   ghcr.io/zaproxy/zaproxy:nightly   "zap-full-scan.py -t…"   About a minute ago   Exited (2) 44 seconds ago

清除CONTAINER ID

docker rm 0ec0935c4233

列出所有docker image

docker images

REPOSITORY                TAG       IMAGE ID       CREATED        SIZE
ghcr.io/zaproxy/zaproxy   nightly   432cd81f7738   22 hours ago   2.11GB

清除 IMAGE ID image

docker rmi  432cd81f7738


2025/06/26

本次的ZAP掃出以下的中風險







去年已經出現 本來想說去年應該已經解決了
但今年還是看到 可能是解決不完整

先在 apache 的 CSP 設定內加入以下二行

frame-ancestors 'self';
form-action 'self';

再來處理 style-src
先把 'unsafe-inline' 拿掉
接下來處理的方式有二種

如果在html檔裡直接定義 css 

要使用 hash 或 nonce
使用 nonce 是比較方便的做法

首先在 apache config 裡

style-src 這個定義加上 'nonce-12345678'

12345678 建議置換為亂碼

之後在 css 定義裡加上 nonce 定義
nonce的字串必須跟apahce config裡的相同

<style nonce="123456789" type="text/css">
</style>

修改 html內文 把原本直接定義的style改成先定義css再引用 

例如原本是

<a href="123456.exe" style="color:red;">123456</a>

要改成

<a href="123456.exe" class="red-text">123456</a><br>

同時在上方的css定義加入 red-text

<style nonce="sjdfhs6849" type="text/css">

.red-text {
  color: red;
  font-size: 21px;
}

</style>


另外不使用 hash 跟 nonce 的方法是 把css以獨立檔案定義後再引用

建立 style.css

檔案內容如下

.red-text {
  color: red;
  font-size: 21px;
}

接下來在 html 的head中引用

<head>
<link rel="stylesheet" href="style.css">
</head>

html內文的修正方法如上

2025/01/23

本次ZAP弱掃出現二個Medium


其實上次就有 不過這次要求連Medium都要處理
看來二個都是CSP的問題
之前改過一次版面會亂
這次再處理看看吧
要修改 /etc/apache2/apache2.conf 
加上以這這段

<IfModule mod_headers.c>

        Header set Content-Security-Policy "\
        default-src 'self';\
        img-src 'self' http://10.0.0.1 http://www.fcounter.net http://s11.flagcounter.com data:;\
        frame-src 'self' https://abc.com.tw https://www.youtube.com;\
        style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com;\
        script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://cdn.datatables.net 'unsafe-eval' 'unsafe-inline';\
        font-src 'self' https://cdnjs.cloudflare.com;\
        "

</IfModule>

內容需要依照自己的需求去修正
一個網頁一個網頁去看格式有沒亂掉 版面有沒正常
可以打開 browser 的開發人員工具
會顯示那些被CSP阻擋了
然後再補上去
需要補什麼問 https://www.perplexity.ai/ 比較快
把主控台上的訊息直接問就可以了

不難 但真的很花時間

2024/06/13

如何使用zap docker

docker安裝好後

docker pull ghcr.io/zaproxy/zaproxy:stable
docker pull zaproxy/zap-stable


啟動

docker run -u zap -p 8080:8080 -p 8090:8090 -i ghcr.io/zaproxy/zaproxy:stable zap-webswing.sh

開browser
http://localhost:8080/zap




2024/05/22

這几天用ZAP在弱掃

當網站很大時 因為會產生很大量的cache

所以要確保執行弱掃那台几器的HD空間要夠

不然有可能還沒做完就爆了

另外有很多網站都出現以下的報告


 


查了一下 可以在httpd.conf 設定

新增以下內容


<IfModule mod_headers.c>

Header set X-Frame-Options "SAMEORIGIN"

Header set Content-Security-Policy "default-src 'self'"

</IfModule>


設完要重啟apache

另外 如果有參考到外面的任何元件

版面是會亂掉的

這個要特別注意


設完後再掃一次出現另一個報告




如果要再處理

Header set 就要再改成如下的設定


Header set Content-Security-Policy "frame-ancestors 'self'; form-action 'self'; base-uri 'self'; img-src 'self'; default-src 'self'; script-src 'self'; style-src 'self';"


當然影響範圍就會更大


https://lawrencechuang760223.medium.com/%E5%A6%82%E4%BD%95%E5%9C%A8apache-server%E4%B8%8B%E6%96%B0%E5%A2%9Ex-frame-options%E8%88%87content-security-policy%E8%87%B3response-header%E4%B8%AD-fix-web-application-d68209ff385c


https://medium.com/@andy001018/owasp-zap-%E5%BC%B1%E6%8E%83%E8%99%95%E7%90%86%E7%B4%80%E9%8C%84-2fb0f4888908

2023/07/06

整理一下zap的使用

首先到

https://www.zaproxy.org/download/

選擇下載
Cross Platform Package 

OS必須要有 java環境才能執行

在debian 安裝 java指令

apt install default-jre

解壓後執行 zap.sh

會出現UI畫面 第一次執行預設會跳出更新畫面 要執行更新

更新完成後 執行zap的這台几器對外網路要關閉

因為進行scan時預設會往下爬五層

有可能會爬到外面去

因為目前沒辦法一次掃多個網站 不管是UI或使用指令

所以如果有多個網站要掃

可以使用命令模式 指令如下

./zap.sh -cmd -quickurl http://abc.com.tw -quickout /tmp/81.html


寫個shell來做

一行一個網站       

https://aa.bb.com
https://dd.ee.com

寫到  /tmp/site_to_test


#!/bin/bash

while read line
do

    echo "$line"
    ./zap.sh -cmd -quickurl "$line" -quickout /tmp/`echo $line|cut -d '/' -f 3`.html

done < /tmp/site_to_test



2023/07/05

zap目前還是沒找到能一次掃描多個url的方法
以下是命令列的指令
不呼叫 UI 執行掃描並產生報告 並在執行完成後退出

./zap.sh -cmd -quickurl http://abc.com.tw -quickout /tmp/81.html


2023/07/04

最近使用zap auto scan的時候

在全部使用預設值的情況下

不知道為什麼都會去scan外部的網站

看了一下預設的層數是5層 也不知道是不是因為這個原因

目前的做法是先把zap這台對外的網路先關掉

再觀察看看