Injection Attack


Injection Attack (注入式攻擊)為一種利用外部不被信任的輸入來源,未經驗證就被直接帶入後端處理,導致利用跳脫字元或編碼等方式造成攻擊字串被執行,進而發生無法預期行為,更由於其普遍性導致網路上有多種工具可協助進行攻擊,不需要高深技巧,可想而知其嚴重性!

 

常見的 Injection attack

 

SQL injectionXSS 更是蟬聯 OWASP TOP 10 多年,可見其造成的傷害及普遍性之高,畢竟開發人員在將外部參數丟入 SQL 命令列時,為了方便時常就直接帶入,省略了過濾或參數化等方式,相信有寫過串接 Database 的網站開發人員都會有的經驗吧!

CRLF 則是利用 \r\n 換行字元切割 HTTP Header 並帶入攻擊行為,因為 Header 就是使用 \r\n 來做欄位的分離,而通常會搭配 XSS 來進行更危險的攻擊手法。

Code injeciton 則為由外部未經驗證的字串被直接使用 eval 或 system 等執行指令來執行,導致伺服器被執行未預期的程式行為,能造成的後果自然也是無法預期。

SMTP injection 為類似 CRLF 利用換行字元切割參數導致送出 SMTP 相關指令,常被第三方用來寄送匿名廣告信件(Relay),從而演變成釣魚信件的進階持續式攻擊 (APT)。

XPath injection 攻擊原理類似 SQL injection,利用跳脫字元繞過檢查,並帶入其他攻擊行為,若為處理使用者身分驗證等流程,則可能造成提權與機密資訊外洩等風險。

 

Injection 式的攻擊手法都是直接信任外部輸入,沒有經過字元的檢查或進行過濾,或是只利用前端 javascript 檢查輸入行為,卻很容易被駭客繞過,能這麼長久被列為最常見的攻擊千萬不可忽略。

 


Related Posts

SQL Injection

SQL Injection 蟬聯 OWASP TOP 10 冠軍寶座從2013年版到最新的2017年版,可見其造成的傷害及普遍性之高,畢竟開發人員在將外部參數丟...