2 2 2 2 注入點的判斷

2021-12-29 22:04:56 字數 1013 閱讀 7260

我們已經知道為什麼出現注入了,那麼如何判斷乙個提交變數的資料庫查詢存在注入漏洞呢?

我們看到select * from admin where id=1像這樣的查詢語句如果我們在後面加個「」就會導致程式程式因為不匹配「」出現語法錯誤。

而在前台輸入會由於conn.asp

這裡我們把容錯語句on error resume next

雖然這樣是可以判斷是否出現注入的,但是並不是所有的程式加上「」出現錯誤都是注入漏洞的。修改sql.asp

set rs=server.createobject("adodb.recordset")

sql="select * from admin where id="&cint(request("id"))

response.write "sql:"&sql

rs.open sql,conn,1,2

if rs.eof or rs.bof then 

response.write "

"else

response.write "

"&rs("username")

end if

rs.close  

set rs=nothing  

set conn=nothing

%>

上面**只在requestcintcint

這樣就會因為錯誤而導致不可執行,但是我們並不能就由此判斷因為cintidconn.aspsql

在圖中已經看到了,雖然cintsqlcint

所以利用「」並不能準確的判斷sqlsqlsqlandand1=11=21=11=212sqlselect * from admin where id=1 and 1=1,select * from admin where id=1是真而後面的1=1

當我們的sqlselect * from admin where id=1 and 1=2select * from admin where id=1肯定還是為真,但是後面的的1=2sql

而當新增過濾數字型別函式cintsql

SQL注入 判斷注入

web應用程式對使用者輸入的資料校驗處理不嚴或者根本沒有校驗,致使使用者可以拼接執行sql命令。可能導致資料洩露或資料破壞,缺乏可審計性,甚至導致完全接管主機。sql注入是將使用者輸入的資料當作了sql語句放入了資料庫執行。xss是將使用者輸入的資料當作了html語句放到了頁面上執行。order b...

判斷注入型別

1 數字型注入 當輸入的引數為整形時,如果存在注入漏洞,可以認為是數字型注入。測試步驟 1 加單引號,url www.text.com text.php?id 3 對應的sql select from table where id 3 這時sql語句出錯,程式無法正常從資料庫中查詢出資料,就會丟擲異...

判斷注入型別 字元型注入

當輸入的引數為字串是,並且存在注入,可稱為字元型注入,字元型和數值型的區別在於數值不需要單引號閉合,而字元型都需要單引號閉合。例如 數值型 select from news where id 1 則這字元型 select from news where title abcd 以上可以看出,在構造pa...