在傳統的滲透測試流程中,資安人員往往需要 手動嘗試各種攻擊腳本,像是 SQL Injection(SQLi)、Cross-Site Scripting(XSS),並觀察伺服器的反應。
這種方式不僅 耗時耗力,還容易 遺漏測試情境。
隨著 AI 技術的發展,我們可以建立一個 AI Agent,讓它自動:
這樣一來,即使是單一開發者,也能快速模擬駭客手法,提早發現潛在弱點。
/login
API,故意沒有防護機制。express
→ 建立 API 伺服器/api/login
→ 模擬不安全登入點fakeQuery
→ 故意拼接字串,暴露 SQLi 漏洞import express from "express";
import bodyParser from "body-parser";
const app = express();
app.use(bodyParser.json());
// 模擬不安全登入 API
app.post("/api/login", (req, res) => {
const { username, password } = req.body;
// 這裡故意用字串拼接 → SQLi 漏洞
const fakeQuery = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;
console.log("收到查詢:", fakeQuery);
// 只要帳號是 admin 且密碼是 123,就算成功
if (username === "admin" && password === "123") {
res.send("登入成功");
} else {
res.send("登入失敗,SQL 查詢: " + fakeQuery);
}
});
// 啟動伺服器
app.listen(3000, () => {
console.log("測試伺服器啟動:http://localhost:3000");
});
const payloads = [
{ username: "admin", password: "' OR 1=1 --" }, // SQL Injection
{ username: "<script>alert('XSS')</script>", password: "123" } // XSS
];
async function attackApi(payload) {
const res = await fetch(apiUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
});
const text = await res.text();
return { payload, status: res.status, response: text };
}
async function analyzeResults(results) {
const prompt = `
你是一個資安顧問,請分析以下 API 測試結果,找出安全漏洞並提供修正建議:
${JSON.stringify(results, null, 2)}
請輸出格式:
- 問題
- 原因
- 修正建議
`;
const result = await model.generateContent(prompt);
console.log("=== AI 分析回報 ===\n");
console.log(result.response.text());
}
(async () => {
let results = [];
for (let p of payloads) {
const r = await attackApi(p);
results.push(r);
}
await analyzeResults(results);
})();