解釋型語言是一種在執行時元件解釋語言**並執行其中包含的指令的語言,同時,基於解釋型語言的執行方式,產生了一種叫**注入的漏洞,總而言之,這種注入解釋型語言導致直譯器處理的資料時由使用者提交的資料和程式設計師編寫的**共同組成的。
此處插播乙個令人非常之費解的翻譯:查詢直譯器以和前面乙個示例相同的方式到達字串資料位置,直接說直譯器執行語句到字串資料的位置不就好了...這本書的翻譯為什麼這麼狗屎真是讓人費解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,這樣也是可以的。
實際上,替吉奧給伺服器的任何資料都能以使用者無法察覺的方式傳遞給資料庫函式,並且可能得到不安全的資料,我們要檢查url引數,cookie,post資料項以及http訊息頭來檢查是否存在漏洞。
1.提交乙個單引號作為目標觀察的資料,觀察是否回造成錯誤。
2.如果發現錯誤,可以試著去提交兩個單引號,其中乙個單引號可以作為另外乙個單引號的轉義字元。
這種方法其實就是構造萬能密碼,也就是比如1=1這樣的恒等式,同時我們也可以在數位化引數當中插入任意輸入,如果發現這對結果沒有產生什麼影響,那麼就可以證明這個地方存在sql注入。
注意:如果單引號被過濾掉了,這時候我們可以使用ascii碼,比如:
67-ascii('a')=2
51-ascii(1)=2
這種方法非常的巧妙,因為在我們嘗試將乙個數字轉化為數學表示式的時候,往往會被過濾掉單引號,上述第乙個式子可以是萬能密碼的變形,也就是將數字資料的注入更換成字串資料的注入,第二條就是為了避免單引號被過濾掉的情況,資料庫在有必要的時候,會隱含地將數字資料轉化為字串資料,也就是同樣的利用這種方法,我們也可以實現數字資料的注入。
在查詢字串時,我們不被允許使用空格,如果必須使用空格,我們需要對空格進行編碼即為:+、%20等等。
在cookie中使用分號,可以將其編碼為%3b
order by子句接受某個列名稱或者編號,並根據該列對結果集進行排序。
提供一系列在引數值中提交數字值的請求,從數字1開始,然後逐個請求遞增。
讀《黑客攻防技術寶典 WEB實戰篇》
6.2.1 密碼保密性不強 弱密碼,web應用並未對使用者自定義的密碼進行約束。6.2.2 蠻力攻擊登入 暴力破解,應用程式允許攻擊者無阻力地不斷嘗試錯誤密碼,直到猜對,不採取阻攔。6.2.3 詳細的失敗訊息 類似於登入失敗後顯示的 使用者不存在 和 密碼錯誤 這樣會幫助攻擊者確定username和...
黑客攻防技術寶典 反病毒篇筆記(三)
所有反病毒引擎自始至終都在使用反病毒特徵碼技術。特徵碼一般是一串包括判斷檔案或緩衝區是否存在已知惡意檔案特徵的短小雜湊值或位元組碼。位元組流是最簡單的反病毒特徵碼形式,偵測病毒最簡單的方式就是匹配特徵位元組流,因為其簡單而快速。目前反病毒最常用的特徵碼匹配技術是基於計算匹配crc實現的。crc 迴圈...
黑客攻防技術寶典 web實戰 筆記 第二章
所有使用者輸入都不可信。要求使用者提交使用者名稱與密碼,由應用程式對其進行核實,確認其合法性。使用者將被作為匿名處理,成為最低一級的信任。令牌是乙個唯一的字串串,用來進行驗證使用者身份。簡單的解釋一下,就是什麼樣的使用者許可權,訪問什麼樣的資料。還有就是什麼樣的使用者使用什麼樣的功能。eg 普通使用...