cookie注入是實現SQL注入的其中一種方式。
原理,方式,
原理
在ASP中,request對象獲取客戶端提交數據常用的是get和post兩種方式,同時request對象可以不通過集合來獲得數據,即直接使用"request("name")"。但它效率低下,容易出錯,當我們省略具體的集合名稱時,asp是按QueryString(get),Form(post),Cookie,Severvariable,集合的順序來搜尋的。cookie是保存在客戶端的一個文本檔案,可以進行修改,這樣一來,就可以利用Request.cookie方式來提交變數的值,從而進行注入攻擊。
方式
首先我們需要找到一個注入點,目前我們是使用get方式提交的參數,要更改成cookie方式提交,我們首先要訪問正常的存在注入點的頁面,等頁面完全打開之後,我們將IE地址欄清空,然後寫上:javascript:alert(document.cookie="id="+escape("x")); 這裡的“id=”便是“注入點中id=x”中的“id=”,“escape("x")”中的“x”是“id=x”中的“x”了,這兩處要根據實際情況來定義。寫完之後按下回車網頁中會彈出一個對話框。
現在更改好了cookie後我們就要試下能不能正常訪問了,現在在另外一個視窗中重新打開那個注入點既是將“id=x”去掉後的,然後看是否能正常訪問。
如果去掉之後能夠繼續訪問 那么說明可以進行cookie注入,這樣就說明程式在使用request對象獲取數據的時候並未指明具體使用什麼方法來獲取,而是直接使用request("xx")的方式。現在cookie形成的一個重要因素已經明確了,接下來我們測試下能否提交特殊字元,看程式是否對數據進行過濾。比如著名的單引號測試法,當然也就可以在語句上添加上手工注入的語句,達到繞過攔截的目的。