黑客攻防技術寶典 攻擊數據存儲區

注入解釋型語言

解釋型語言是一種在運行時組件解釋語言代碼並執行其中包含的指令的語言,同時,基於解釋型語言的執行方式,產生了一種叫代碼注入的漏洞,總而言之,這種注入解釋型語言導致解釋器處理的數據時由用戶提交的數據和程序員編寫的代碼共同組成的。

注入sql

此處插播一個令人非常之費解的翻譯:查詢解釋器以和前面一個示例相同的方式到達字符串數據位置,直接說解釋器執行語句到字符串數據的位置不就好了...這本書的翻譯爲什麼這麼狗屎真是讓人費解QAQ第三版能不能換一個人翻譯啊。

利用一個基本的漏洞:

利用註釋符將編寫好的sql語句註釋成爲自己想要的請求 ,這種方法也稱爲構造萬能密碼。

wiley ' or 1=1--
//將執行以下語句
SELECT author,title,year FROM books WHERE publisher = 'wiley' OR 1=1--' and published=1

或者以下的方法也是可以的

wiley' or 'a' = 'a
//將執行以下的查詢
SELECT author,title.year,FROM books WHERE publisher = 'whiley' OR 'a' = 'a' and published =1

同時我們也可以使用insert即插入語句進行查詢字段:

有時候我們無法提前獲取需要插入的value到底有多少或者參數的類型,此時我們可以利用1來進行注入

foo')--
foo',1,1,1)--
//格式:用戶名,字段1,字段2,字段3....

以上這種方法的實行是因爲大多數數據庫都會隱式的將一個整數轉換爲字符串,如果使用值1遭到了拒絕,那我們可以嘗試使用2000,這樣也是可以的。

查明SQL注入漏洞:

實際上,替吉奧給服務器的任何數據都能以用戶無法察覺的方式傳遞給數據庫函數,並且可能得到不安全的數據,我們要檢查URL參數,cookie,post數據項以及HTTP消息頭來檢查是否存在漏洞。

sql注入注入字符串數據滲透測試步驟:

 1.提交一個單引號作爲目標觀察的數據,觀察是否回造成錯誤。

2.如果發現錯誤,可以試着去提交兩個單引號,其中一個單引號可以作爲另外一個單引號的轉義字符。

sql注入注入數字數據滲透測試步驟:

這種方法其實就是構造萬能密碼,也就是比如1=1這樣的恆等式,同時我們也可以在數字化參數當中插入任意輸入,如果發現這對結果沒有產生什麼影響,那麼就可以證明這個地方存在Sql注入。

注意:如果單引號被過濾掉了,這時候我們可以使用ASCII碼,比如:

67-ASCII('A')=2
51-ASCII(1)=2

這種方法非常的巧妙,因爲在我們嘗試將一個數字轉化爲數學表達式的時候,往往會被過濾掉單引號,上述第一個式子可以是萬能密碼的變形,也就是將數字數據的注入更換成字符串數據的注入,第二條就是爲了避免單引號被過濾掉的情況,數據庫在有必要的時候,會隱含地將數字數據轉化爲字符串數據,也就是同樣的利用這種方法,我們也可以實現數字數據的注入。

在查詢字符串時,我們不被允許使用空格,如果必須使用空格,我們需要對空格進行編碼即爲:+、%20等等。

在cookie中使用分號,可以將其編碼爲%3b

注入查詢結構:

order by子句接受某個列名稱或者編號,並根據該列對結果集進行排序。

orderby注入查詢滲透步驟:

提供一系列在參數值中提交數字值的請求,從數字1開始,然後逐個請求遞增。

 

 

 

 

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