iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Security

30 天 TryHackMe 實戰系列 第 8

Day8 SQL Injection 實戰

  • 分享至 

  • xImage
  •  

昨天我們學習了網頁應用的基礎,了解了網頁如何運作。今天,我們就要將這些知識用在實戰上,挑戰一個最常見也最危險的網頁漏洞:SQL Injection

SQL (Structured Query Language) 是用來和資料庫溝通的語言。當一個網頁沒有做好安全防護,讓使用者可以輸入惡意的 SQL 指令時,駭客就能利用這個漏洞,入侵資料庫,竊取機密資訊。

今天,我完成了 TryHackMe 的 "SQL Injection" 房間,並學習了如何利用這個漏洞繞過登入頁面。


SQL Injection 是什麼?

想像一個網站的登入流程,會用類似這樣的指令到資料庫去驗證:

SELECT * FROM users WHERE username = '使用者輸入' AND password = '密碼輸入'`

如果我在使用者名稱欄位輸入 ' OR 1=1--,這段指令就會變成:

SELECT * FROM users WHERE username = '' OR 1=1--' AND password = '密碼輸入'
  • ' 會關閉前面的字串。
  • OR 1=1 是一個永遠為真的條件。
  • -- 會讓後面的內容(包括密碼驗證)被註解掉,不起作用。

這樣一來,不管密碼是什麼,這整行驗證都會變成「真」,我就能直接登入。


今日挑戰心得

透過親手操作,我成功地利用這個簡單的技巧繞過了登入頁面,並存取了原本不該看到的東西。這讓我意識到,一個小小的程式碼漏洞,可能就會造成巨大的資安災難。

這個漏洞的成因,就是程式設計師沒有對使用者的輸入進行嚴格的過濾和檢查。從駭客的角度來看,這是個絕佳的切入點;但從防禦的角度來看,這也是一個非常重要的教訓:永遠不要相信使用者的輸入。


上一篇
Day 7 網頁應用程式基礎
系列文
30 天 TryHackMe 實戰8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言