---
title: 弱掃軟體說明：sqlmap
updated: 2025-05-21 09:29:06Z
created: 2025-05-21 09:28:17Z
latitude: 25.03296940
longitude: 121.56541770
altitude: 0.0000
---

---
- chatGPT_url: https://chatgpt.com/share/682d9cdf-1100-8000-a9a9-ae5cfa9db37a


---

---

## 一、原始 Dockerfile 內容與自行 Build

```dockerfile
# docker-alpine-sqlmap（作者：sjinks）
FROM alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c

RUN \
  apk add --no-cache python3 && \
  install -d -m 0755 -o nobody -g nobody /sqlmap /.local && \
  wget -q -O - https://github.com/sqlmapproject/sqlmap/tarball/master \
      | tar -xz --strip-components=1 -C /sqlmap -f -

USER nobody            # 避免 root 身份執行
WORKDIR /sqlmap         # sqlmap 主程式所在
VOLUME /.local          # 掛載點，用來保存報告與 Session
ENTRYPOINT ["/usr/bin/python3", "sqlmap.py"]
```

([GitHub][1])

### Build 指令

```bash
docker build -t my-sqlmap \
  https://github.com/sjinks/docker-alpine-sqlmap/raw/master/Dockerfile
```

> 若公司環境擋 raw\.githubusercontent，可先 `curl -O Dockerfile` 再 `docker build -t my-sqlmap .`

---

## 二、最基本的「能跑出 result」快測流程

> 以下用 **公開測試靶站** `http://testphp.vulnweb.com/listproducts.php?cat=1` 示範，確定一定有 SQL Injection，方便你驗證報告會生成。

1. **建立結果資料夾**

   ```bash
   mkdir -p sqlmapdata     # 任何想放的資料夾皆可
   ```

2. **執行並輸出 CSV 結果**

   ```bash
   # 這裡示範在 Linux / WSL；Windows PowerShell 把 $(pwd) 改成 ${PWD}
   docker run --rm -it \
     -v "$(pwd)/sqlmapdata:/.local" \
     my-sqlmap \
     -u "http://testphp.vulnweb.com/listproducts.php?cat=1" \
     --batch --risk 2 --level 2 --dump --dump-format=CSV
   ```

3. **確認檔案位置**
   成功後會在

   ```
   sqlmapdata/share/sqlmap/output/testphp.vulnweb.com/
     ├─ results-*.csv   ← 這就是「result 檔」
     └─ dump/…          ← dump 出來的資料表
   ```

---

## 三、針對自家網站的「一般弱掃」＋ HTML 報告

1. **基本指令範本**

   ```bash
   docker run --rm -it \
     -v "$(pwd)/sqlmapdata:/.local" \
     my-sqlmap \
     -u "https://your.site.com/page.php?id=123" \
     --level 3 --risk 3 \
     --crawl=2 --forms \
     --tamper=space2comment \
     --random-agent --identify-waf \
     --dump-all --dump-format=HTML \
     --batch
   ```

   | 參數                              | 用途                         |
   | ------------------------------- | -------------------------- |
   | `--level 3 --risk 3`            | 開啟較深層、較激進的測試               |
   | `--crawl=2 --forms`             | 先抓連結與 HTML Form，再一起測       |
   | `--tamper=space2comment`        | 常見繞 WAF 腳本，不一定適用所有站，請視情況增減 |
   | `--identify-waf`                | 先偵測並顯示可能的 WAF              |
   | `--dump-all --dump-format=HTML` | 找到注入點後，倒全庫並產出 HTML         |
   | `--batch`                       | 關閉互動，全部自動選預設               |

2. **Windows 路徑掛載注意**

   * PowerShell / CMD：

     ```powershell
     -v "${PWD}\sqlmapdata":/.local
     ```
   * Git Bash / WSL：

     ```bash
     -v "$(pwd)/sqlmapdata:/.local"
     ```

3. **HTML 報告位置**

   ```
   sqlmapdata/share/sqlmap/output/your.site.com/
     └─ dump/<DB名>/<Table名>.html
   ```

   需要 PDF 可直接用瀏覽器「列印成 PDF」，或用 wkhtmltopdf 批次轉檔。

---

## 四、常見無報告原因與排解

| 狀況                                                     | 可能原因                                    | 解法                                                 |
| ------------------------------------------------------ | --------------------------------------- | -------------------------------------------------- |
| 找不到任何 `results-*.csv`                                  | volume 掛錯：`C:` 冒號被 Docker 誤判            | 整段路徑用引號包住；或先 `mkdir sqlmapdata`                    |
| 有 CSV 沒 HTML                                           | 沒下 `--dump` / `--dump-all` <br>或根本沒注入成功 | 確實加入 `--dump*`；提高 `--level / --risk` 搜尋注入點         |
| `all tested parameters do not appear to be injectable` | 參數經 `intval()`、WAF 過濾、沒有參數              | 改測登入後流量 (`-r request.txt`)、換 tamper、針對 POST/Cookie |

---

### 法規提醒

在臺灣，未經授權對他人系統進行掃描可能違反《刑法 §358 侵害電腦使用罪》等規定。請務必取得書面授權或僅對自家系統、合法測試靶站執行上述指令。

---

照此流程操作即可：

1. **自行 build**（或直接 pull `wildwildangel/sqlmap`）。
2. **先掃靶站**驗證報告路徑正確。
3. **再對授權網站調整參數**，即可拿到 HTML／CSV 報告。

有任何路徑、權限或輸出問題，再把完整指令與末端輸出貼上，一起排查！祝掃描順利、安全合規。

[1]: https://github.com/sjinks/docker-alpine-sqlmap/raw/master/Dockerfile "github.com"
