SQL注入天書 注入漏洞全接觸

2021-04-17 03:19:08 字數 1759 閱讀 7041

引 言

隨著b/s模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於這個行業的入門門檻不高,程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫**的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在隱患。使用者可以提交一段查詢**,根據程式返回的結果,獲得某些他想得知的資料,這就是所謂的

sqlinjection,即

sql注入。

sql注入是從正常的www埠訪問,而且表面看起來跟一般的web頁面訪問沒什麼區別,所以目前市面的都不會對

sql注入發出警報,如果管理員沒檢視iis日誌的習慣,可能被入侵很長時間都不會發覺。

但是,sql注入的手法相當靈活,在注入的時候會碰到很多意外的情況。能不能根據具體情況進行分析,構造巧妙的

sql語句,從而成功獲取想要的資料,是高手與「菜鳥」的根本區別。

根據國情,國內的用asp+或

sqlserver的佔70%以上,+mysq佔l20%,其他的不足10%。在本文,我們從分入門、高階至高階講解一下asp注入的方法及技巧,php注入的文章由nb聯盟的另一位朋友zwell撰寫,希望對安全工作者和程式設計師都有用處。了解asp注入的朋友也請不要跳過入門篇,因為部分人對注入的基本判斷方法還存在誤區。大家準備好了嗎?let'sgo...

入門篇如果你以前沒試過

sql注入的話,那麼第一步先把ie選單=>工具=>internet選項=>高階=>顯示友好http錯誤資訊前面的勾去掉。否則,不論伺服器返回什麼錯誤,ie都只顯示為http500伺服器錯誤,不能獲得更多的提示資訊。

第一節、

sql注入原理

microsoftjetdatabaseengine錯誤'80040e14'

字串的語法錯誤在查詢表示式'id=49''中。

/showdetail.asp,行8

從這個錯誤提示我們能看出下面幾點:

1.**使用的是access資料庫,通過jet引擎連線資料庫,而不是通過odbc。

2.程式沒有判斷客戶端提交的資料是否符合程式要求。

3.該sql語句所查詢的表中有一名為id的字段。

從上面的例子我們可以知道,

sql注入的原理,就是從客戶端提交特殊的**,從而收集程式及伺服器的資訊,從而獲取你想到得到的資料。

第二節、判斷能否進行

sql注入

看完第一節,有一些人會覺得:我也是經常這樣測試能否注入的,這不是很簡單嗎?

其實,這並不是最好的方法,為什麼呢?

首先,不一定每台伺服器的iis都返回具體錯誤提示給客戶端,如果程式中加了cint(引數)之類語句的話,

sql注入是不會成功的,但伺服器同樣會報錯,具體提示資訊為處理url時伺服器上出錯。請和系統管理員聯絡。

其次,部分對

sql注入有一點了解的程式設計師,認為只要把單引號過濾掉就安全了,這種情況不為少數,如果你用單引號測試,是測不到注入點的

那麼,什麼樣的測試方法才是比較準確呢?答案如下:

可以注入的表現:

①正常顯示(這是必然的,不然就是程式有錯誤了)

②正常顯示,內容基本與①相同

③提示bof或eof(程式沒做任何判斷時)、或提示找不到記錄(判斷了rs.eof時)、或顯示內容為空(程式加了onerrorresumenext)共5頁  第1頁    

SQL注入天書 ASP注入漏洞全接觸

在入門篇,我們學會了 注入的判斷方法,但真正要拿到 的保密內容,是遠遠不夠的。接下來,我們就繼續學習如何從資料庫中獲取想要獲得的內容,首先,我們先看看 注入的一般步驟 第一節 注入的一般步驟 首先,判斷環境,尋找注入點,判斷資料庫型別,這在入門篇已經講過了。其次,根據注入引數型別,在腦海中重構sql...

sql注入天書 asp注入漏洞全接觸

隨著b s模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於這個行業的入門門檻不高,程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫 的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢 根據程式返回的結果,獲得某...

SQL注入漏洞全接觸

第一節 sql注入的一般步驟 首先,判斷環境,尋找注入點,判斷資料庫型別,這在入門篇已經講過了。其次,根據注入引數型別,在腦海中重構sql語句的原貌,按引數型別主要分為下面三種 a id 49 這類注入的引數是數字型,sql語句原貌大致如下 select from 表名 where 字段 49 注入...