Web腳本***之注入***


注入***的概念和原理

    注入漏洞是Web服務器中廣泛存在的漏洞類型,其基本原理是Web程序對用戶輸入請求中包含的非法數據檢查過濾不嚴,使Web程序將用戶的異常輸入字符當做正常代碼執行,從而使用戶在未授權的情況下非法獲取Web服務器的信息。

    利用注入漏洞發起的***稱爲注入***,它是Web安全領域最爲常見威脅也是最大的***,注入***包括SQL注入、代碼注入、命令注入、LDAP注入、XPath注入等。實現注入***要具備兩個關鍵條件,第一是用戶能夠自主編寫輸入的數據,第二是Web程序的執行代碼被拼接了用戶輸入的數據。實施注入***的關鍵在於掌握被注入的後臺數據庫系統的組織結構特徵,確保注入數據被拼接後符合Web程序語法規範,成爲可被正確執行的操作語句。


SQL注入的原理

    SQL注入***的原理是Web應用程序在接收到用戶的請求參數後,如果沒有對請求參數進行嚴格的過濾或檢查,而直接將用戶的請求參數作爲拼接SQL語句的一部分進行解釋執行,則***者就可以通過構造一小段SQL代碼片段作爲請求參數提交給Web應用程序,從而使這段SQL代碼得到後臺數據庫程序的解釋執行,使***者實現查詢操作後臺數據庫的***意圖。

    爲了理解SQL注入的原理,下面通過一個實例詳細說明。

    每次用戶登陸網站,需要通過在登陸頁面的表單中輸入用戶名和口令。下面這段代碼是一個簡化了的 用戶登錄表單HTML代碼,表單中的兩個基本表單項用於接收用戶的登陸輸入。

       wKiom1S30ASz0gNTAACK3fwywdo501.jpg

    ***者在userid字段填寫“admin'--”,passwd字段填寫“password”,並點擊“登陸”按鈕提交表單等待後臺程序認證。

    程序中直接將用戶提交的數據作爲動態構造的SQL語句的一部分,並沒有經過任何檢查、過濾或轉義操作。因此,最終在後臺數據庫服務器執行的SQL語句如下所示:

    SELECT * FROM members WHERE userid = 'admin'--'AND passwd = 'password'

    因爲符號“--”是許多數據庫管理系統,如MySQL和SQL Server 的註釋標記,所以上述SQL語句實際上等價於以下的SQL語句:

    SELECT * FROM members WHERE userid = 'admin'

    也就是說,用戶並不需要輸入密碼就可以以admin用戶的身份被後臺的Web應用程序認證通過。


SQL注入***的步驟

    ①首先需要判斷Web網站是否可以進行SQL注入。如果訪問的URL地址僅僅是對靜態網頁的訪問,則不存在SQL注入問題。只有訪問的網頁包含對後臺數據庫進行動態查詢的操作纔可能存在SQL注入。

    ②尋找SQL注入點。完成上一步的判斷後,需要尋找可利用的SQL注入漏洞。***者通過輸入一些特殊語句並根據瀏覽器返回信息判斷數據庫類型,從而構建數據庫查詢語句找到注入點。

    ③利用注入漏洞查詢後臺數據庫並獲取或猜解用戶名和密碼。數據庫中存放的表名、字段名、用戶名和密碼的長度以及內容。這個猜測過程可以通過網上大量注入工具快速實現並藉助破解網站輕易破解用戶密碼。

    ④尋找Web管理後臺入口,通過用戶名密碼登錄。通常Web後臺管理的界面不面向普通用戶開放,***者可以利用掃描工具快速搜索到可能的登陸地址,依次進行嘗試,就可以找到後臺管理界面的入口地址,通過用戶名密碼實現登陸。

    ⑤實現對網站的成功***和修改。***者登陸到後臺管理頁面後即可按照自己意願進行修改。並進一步***數據庫服務器,將數據庫中的內容導出,即***。

    (注:嗅探、掃描、密碼算法、防火牆、***、IDS、逆向工程、常見***與防護方式、操作系統安全配置、網絡設備安全配置、編解碼、密碼破解、逆向工程、SQL注入、Cookie注入、欺騙技術、日誌分析、網絡編程、腳本分析、緩衝區溢出等)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章