iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Security

CTF 菜鳥修練日誌系列 第 6 篇

Day 06:【Web】SQL Injection 終極入門 (一):1' OR '1'='1 的魔力

  • 分享至 

  • xImage
  •  

前言

在前面的章節中,我們看過了前端 JavaScript 驗證與 Cookie 偽造。但當網站開發者把驗證邏輯移到後端、並使用資料庫(Database)來儲存帳號密碼時,是不是就絕對安全了呢?

答案是:不一定! 如果後端程式碼在處理資料庫查詢時,沒有將使用者輸入的資料進行「過濾」或「參數化處理」,攻擊者就能透過注入精心設計的 SQL 語法,閉合原有的查詢並插入自己的指令。今天我們就來聊聊 Web 資安領域最著名的漏洞——SQL Injection(SQLi)!


本日目標

透過 PicoCTF 實戰,掌握以下核心技能:

  1. 了解 SQL Injection 的基本成因與布林邏輯(Boolean Logic)繞過原理。
  2. 掌握最經典的萬能密碼(如 ' OR '1'='1)並繞過身份驗證(Authentication Bypass)。

預備觀念:SQL 語句是怎麼被「注入」的?

假設後端伺服器在處理使用者登入時,寫了類似下面的 SQL 查詢:

SELECT * FROM users WHERE username = '$user_input' AND password = '$pass_input';

如果開發者直接把使用者輸入的變數$user_input串接到 SQL 語句中:
正常情況: 我們輸入admin,SQL 會變成WHERE username = 'admin'。
攻擊情況: 我們在帳號欄位輸入 'OR '1'='1。

拼接後的 SQL 語句會變成:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...';

發生了什麼事?
單引號'成功閉合了原本的字串,而OR '1'='1'永遠為真(True)!這導致整條 WHERE條件直接成立,伺服器便會認定驗證通過,甚至直接回傳資料庫中的第一個使用者(通常就是admin)!

實戰題目:PicoCTF - Irish-Name-Repo 1 / Web SQLi

  • 題目分類: Web Exploitation
  • 題目敘述: 網站包含一個管理員登入頁面,題目要求我們在不知道密碼的情況下成功登入以取得 Flag。
  • https://ithelp.ithome.com.tw/upload/images/20260920/20184211GiWC3cBEgH.png

1. 解題思維

  1. 造訪登入頁面,嘗試輸入普通的帳號密碼(如 admin / admin),跳出登入失敗。
  2. 測試是否存在 SQL Injection 漏洞:在帳號或密碼輸入框中輸入單引號 '。若網頁跳出 SQL 語法錯誤(SQL Syntax Error)或行為異常,代表輸入的單引號成功干擾了後端的 SQL 語句構造。
    https://ithelp.ithome.com.tw/upload/images/20260920/20184211in2Ynbgj9e.png
  3. 利用萬能密碼閉合 SQL 語法,繞過密碼檢查。

2. 實戰步驟

步驟一:測試與構造攻擊 Payload
  1. 開啟登入頁面,點選選單中的 Admin Login。
  2. 在 Username 欄位輸入:
    admin' OR '1'='1
    
    https://ithelp.ithome.com.tw/upload/images/20260920/20184211PlZKJcFzYw.png
    註:部分資料庫可能需要加上註解符號(如 -- 或 #)來註解掉後續的密碼檢查語句,例如 admin' -- 。
  3. 密碼欄位隨意輸入(例如 123456),按下 Login 提交。
步驟二:取得 Flag

成功繞過驗證!網頁識別我們為管理員,並直接顯示包含了 Flag 的歡迎訊息:

Flag: picoCTF{s0m3_SQL_85832275}
https://ithelp.ithome.com.tw/upload/images/20260920/20184211H2RpzVOMYg.png


上一篇
Day 05:【Web】前端驗證不可靠:繞過簡單的 JavaScript 密碼檢查
下一篇
Day 07:【Web】SQL Injection 實戰 (二):使用 Union Based 撈出隱藏資料
系列文
CTF 菜鳥修練日誌 共 10 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言