《白帽子講WEB安全》學習筆記之第7章 注入攻擊

來源:互聯網
上載者:User

標籤:安全 白帽子

第7章 注入攻擊

SQL注入的兩個條件:1,使用者可以控制輸入;2,原本執行的SQL語句並接了使用者輸入的資料。

7.1 sql注入

SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入欄位名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令,比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊.

盲註:

盲注是在伺服器沒錯誤回顯時完成的注入攻擊。伺服器沒有錯誤回顯,對於攻擊者而言缺少了非常重要的“調式資訊”,所以攻擊者需要找一個一個方法來驗證注入的SQL是否已經執行。

盲注是根據多給條件進行判斷,如果頁面沒有出錯則表示存在注入點。

7.2 資料庫攻擊技巧

在網站中使用預存程序並不常見,雖然使用預存程序可以提高執行效率。但是會出現移植問題。

資料庫字元需要統一編碼,最好為UTF-8

7.3 正確地防禦sql注入

防禦方法:

q  使用先行編譯語句

q  使用預存程序

q  檢查資料類型

q  使用安全函數

7.4 其他注入攻擊

XML注入

Xml注入是通過改寫xml的資料內容來實現。XML通常用於儲存資料,如果使用者提供的資料是以XML的方式進行儲存,那麼對攻擊者來說,注入額外的、攻擊者可能不能正常控制的XML是有可能的。

代碼注入:

js:eval()

jsp:include

CRLF注入:

就是斷行符號(CR, ASCII13, \r) 換行(LF, ASCII10, \n)。

換行在有的ASCII碼錶也用newline(簡nl)來進行表示,這裡的lf是line feed的概念,意思是一樣的。

這兩個ACSII字元不會在螢幕有任何輸出,但在Windows中廣泛使用來標識一行的結束。而在Linux/UNIX系統中只有分行符號。

CR和LF組合在一起即。

這中“CRLF”攻擊可以在東方紅項目中測試一下。

對於防禦這種注入攻擊,最好的辦法就是“資料與代碼分離”


本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1859551

《白帽子講WEB安全》學習筆記之第7章 注入攻擊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.