2017.W22 - SQL Injection - 資安

Heather avatar
By Heather
at 2017-05-30T21:41

Table of Contents

2017.W22 - SQL Injection
> 都 2017 年了 SQL Injection 還沒絕種

## 前言 ##
前幾天突然發現有不少登入次數 <20 的帳號在看這個版的文章

來源 IP 都很固定 突然想到...

如果在文章內容中塞入 SQL 語法 那些爬蟲會不會就中標了...


## 內容 ##
SQL Injection[0] 是一種發生在資料庫層的安全漏洞

主要是在執行 SQL 語法時夾帶了意料之外的參數 導致執行了預期以外的結果

一個有年代可以被 SQL Injection 語法可以是

SELECT count(*) from account WHERE user = '$USER' and password = '$PASSWORD';

預期透過使用者填入的 USER 與 PASSWORD 參數來判斷使用者輸入的內容是否正確 (藉由回傳非 0 值)

顯而易見的 在 2017 年的現在這種寫法應該是已經不存在了

原因在於透過沒有被過濾的輸入值 (像是 PASSWORD 輸入成 1' OR '1' = '1)

就可以無視密碼是否正確而成功登入...



同樣的 假設網路爬蟲為了搜尋本網頁的內容 並找出所有的超連結[1]

可能的做法會是先用正規表示法找到所有 http:// 或 https:// 開頭的內容

並且塞入到 DB 當中 這樣可能的寫法會是...


1. 先用 http[s]?://\S+ 來找到所有的超連結
2. 透過 INSERT INTO ptt.hyperlink (board, link) VALUES ('NewSecurity', '$LINK')

透過沒有過濾的 LINK 參數 就可以被一個惡意的超連結導致 Table 被刪除

(當然前提是爬蟲會處理將 %20 轉回成空白)





不過在重新提醒:

SQL Injection 會發生的主要原因 在於信任 User 輸入的內容而直接帶入到 SQL 語法中

透過正確的過濾 與正確使用第三方套件 可以避免 SQL Injection 發生在 2017 的現在


[0]: https://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A
[1]: https://zh.wikipedia.org/zh-tw/%E8%B6%85%E9%80%A3%E7%B5%90

--
Tags: 資安

All Comments

Christine avatar
By Christine
at 2017-06-02T08:34
看完這篇 mo就異常終止 呃。。。。。
Ingrid avatar
By Ingrid
at 2017-06-04T17:42
樓上是認真的嗎.... 那一定要研究 mo 了 XD
Mary avatar
By Mary
at 2017-06-07T05:54
QQ 我在 iPhone 上試過 moptt / guest 沒事情
Jessica avatar
By Jessica
at 2017-06-11T03:28
好猛喔
Charlie avatar
By Charlie
at 2017-06-13T09:11
想推這個... https://xkcd.com/327/
Adele avatar
By Adele
at 2017-06-17T07:47
推薦文章。
Candice avatar
By Candice
at 2017-06-21T10:31
push
Edwina avatar
By Edwina
at 2017-06-25T14:17
Jacob avatar
By Jacob
at 2017-06-29T05:19
參數化查詢就避掉的低階技術,怎反應最熱烈,唉..
Damian avatar
By Damian
at 2017-06-30T04:27
因為門檻最低呀,可以自己試而且立竿見影
Jake avatar
By Jake
at 2017-07-04T14:23
我用Mo Ptt沒事R

2017.W21 - Google Hacking

Jack avatar
By Jack
at 2017-05-23T22:04
2017.W21 - Google Hacking andgt; 基本技巧 UTFG/STFW ## 前言 ## 流言終結者:凡事用 C4 藥都能搞定 (When in doubt, C4!) 不會 Hacking 用 Google 就可以了 如何知道問題的答案:先在網路上講一個蠢答案就會有人給你各 ...

2017.W20 - Remote Code Execution

Suhail Hany avatar
By Suhail Hany
at 2017-05-16T22:49
2017.W20 - Remote Code Execution (RCE) andgt; 趁著 MS-2017-010 的問題來介紹 ## 前言 ## 在上禮拜的聚會中 跟朋友聊到了一些資安名詞 他們在爭執一些惡意軟體[0]到底是被歸類在後門[1]還是木馬[2] 其實像是這些名詞在惡意軟體當中 都 ...

Ophelia avatar
By Ophelia
at 2017-05-16T00:08
關於勒索病毒 就小弟所知是透過像AES這樣的加密方式 來將硬碟內的檔案進行加密 倘若企業本身已有使用主動式的加密軟體 那這樣勒索病毒還能把那些已經被加密過的檔案再次加密嗎? ----- Sent from JPTT on my Asus ASUS_Z011D. - ...

萌芽計劃-白帽菁英入門(新竹場)

Olive avatar
By Olive
at 2017-05-14T23:04
※ [本文轉錄自 Hsinchu 看板 #1P66wNis ] 作者: AIRY0812 (肥貓) 看板: Hsinchu 標題: [情報] 萌芽計劃-白帽菁英入門(新竹場) 時間: Sun May 14 22:49:55 2017 長久以來臺灣的資訊安全,一直處於被動且資源分布不均的狀況。 ISDA一 ...

2017.W19 - 橢圓曲線加密 ECC

Irma avatar
By Irma
at 2017-05-09T20:58
2017.W19 - 橢圓曲線加密 ECC andgt; 學術介紹 輕鬆了解 ## 前言 ## 橢圓曲線加密 (Elliptic Curve Cryptography, ECC)[0] 是基於橢圓曲線數學的一種公開金要加密演算法 相對於 RSA 可以用較短的金鑰來獲得相等的安全防護 ## 內容 # ...