Home » Uncategorized » 白帽駭客系列: SQL Injection

白帽駭客系列: SQL Injection

Source: https://portswigger.net/web-security/sql-injection

這個攻擊方式是使用特殊SQL語法,在登入的頁面中不輸入帳號密碼,而是用其他方式繞過SQL的認證,釣出資料庫的資料。

之前在念資安證照的時候,常常會把DDoS和SQL Injection搞混,那是因為沒有徹底瞭解這兩種攻擊的不同,現在就比較清楚了,DDoS主要是搞爆網站,讓其他人連不上去,而SQL Injection則是繞過頁面登入,偷取資料庫裡的重要資料。

在頁面登入,使用者輸入帳密後,系統會拿這組帳密和資料庫中儲存的帳密來相互對照,看看是否符合,如果符合,那使用者就可以登入。駭客就是看準這一點,由於系統會將輸入的資料和資料庫中儲存的資料對照,也就是說駭客是有機會能操縱「對照」這塊系統操作,因此在應該輸入帳密的部分,駭客則會輸入其他的指令,比如說「對照帳密的同時,回傳資料庫儲存的其他使用者的帳號密碼給我」這樣,如果剛好遇到系統較為老舊,或是沒有定時更新防駭系統的話,那資料庫還真的會傻傻回傳其他使用者的帳號密碼,這時駭客就能順利登入系統,偷取重要資料了。

一開始我還覺得SQL Injection是個很有歷史的手法,應該都被杜絕光了,但實務上有的系統很老舊,更新汰換太花錢,所以就這樣繼續運行;也有的狀況是開發者沒有設置好防駭系統,造成漏洞,讓駭客可以混入資料庫裏面;又或者是語法推陳出新,有其他的軟體可以輔助,提高SQL Injection的機率,種種方式讓這個非常有歷史的SQL Injection,還是能順利地在這個21世紀活下來。

至於防範方法,基本有以下四種:

1.一般的雲端服務都會有防SQL Injection的機制,像是如果有使用者不打帳密,反而輸入一些奇奇怪怪的指令時,那系統會自動遮擋該用戶,並對此發出警告。

2.對於過於老舊的系統,也會強烈建議更新並升級,讓原本的漏洞能被有效補強。

3.還有是針對資料庫的重要資料加密,沒有解密鑰匙的話,是無法打開的,因此如果真有駭客跑進資料庫裡,能偷的也是那堆加密的資料,駭客也無從解密,算是第二層防護。

4.最後就是雙重認證的方式,這招的確是一招鮮走遍天,駭客就算能破第一層並登入,第二層認證登入也能把駭客擋住,是一個很好的防護方式。

以上,記錄完畢。

Leave a comment