SQL注入简单原理分析
SQL注入简单分析
示例语句:
select * from admintable where adminName like '%a%'
在查询中我们一般在a这个地方由界面传入不同的值,当我们在a这里传入的值为“'”单引号时,拼凑成的SQL语句就如下:
select * from admintable where adminName like '%'%'
执行这句语句我们会发现出现以下异常:
消息 105,级别 15,状态 1,第 1 行
字符串 '
' 后的引号不完整。
消息 102,级别 15,状态 1,第 1 行
'
' 附近有语法错误。
因为单引号的加入是原本完整的SQL语句拼凑不再完整,因此导致以上异常。
而一般黑客在简单的尝试注入时,在界面的输入处(如URL的参数,文本框的输入等)直接输入单引号来测试是否会引发SQL异常,根据页面的错误代码展现来判断是否存在SQL注入漏洞,例如会直接在页面中出现SQL的异常代码或直接跳转到错误页面。当被认为存在SQL注入漏洞时,那么将不再是输入单引号了,而是输入相关的SQL执行语句。
于是当我们传入不同的值例如
' or 1=1 ;delete admintable where 1=1 or ''='
得到的SQL语句就如下:
select * from admintable where adminName like '%' or 1=1 ;delete admintable where 1=1 or ''='%'
而这句SQL的执行效果就有两个:
1、select * from admintable where adminName like '%' or 1=1 ;
--查询admintable
2、delete admintable where 1=1 or ''='%'
--将admintable清空
也就是说如果把delete admintable where 1=1 这句SQL扩展修改的话,可以执行增删改等操作了,例如SQL2000中的XP_CMDShell命令还能直接执行CMD命令台的CMD命令,来实现直接对服务器的控制等。
至于如何暴露出数据库的各个表的名字等,可以通过枚举猜测等方式实现,网络上已经有相关的SQL注入工具可供直接使用。
当我们的网站存在SQL注入漏洞时,最好修改相关的底层代码或者使用相关的监控工具来修复。一个网站被入侵并不是黑客的错,而是服务器管理员和网站开发人员惹下的祸。
如有错误,敬请指正。
相关文档:
如要在一个hwsp表中填加字段:ylxs
alter table hwsp add column ylxs
ALTER TABLE 表 {ADD ADD{COLUMN 字段类型 [ (字长)] [NOT NULL] [CONSTRAINT 索引 ] |
ALTER COLUMN 字段类型 [(字长)] |
CONSTRAINT 多重字段索引 } |
&nbs ......
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE proc pGetInsertSQL (@TableName varchar(256))
as
begin
set nocount on
declare @sqlstr varchar(4000)
declare @sqlstr1 varchar(4000)
declare @sqlstr2 v ......
----start
前面,我们介绍了 尽量避免在SQL语句的WHERE子句中使用函数,因为这样做会使该字段上的索引失效,影响SQL语句的性能。基于同样的道理,我们也应该避免使用LIKE。考虑下面的情况:
CREATE TABLE USER
(
NAME VARCHAR(20) NOT NULL,---姓名
MYNUMBER VARCHAR(18)---身份证号码
);&nb ......
系统环境:windows xp pro
数据库:MS Sql 2000
IIS: 5.1 ASP.NET2.0
因为代码是2.0.net的,没有办法只好安装了.net下载你可以去微软的网站上去下载.这个是免费的软件,我知道的是免费的。
数据库做了压缩后缀是bak的,所以数据库不能直接使用,需要导入在网上查了很多的资料但是不多,但自己成功导入了,写下来做一个备 ......
1.在查询分析器下查询Excel文档
Select * from
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source = "c:\测试.xls";User ID = Admin;Password=;Extended properties=Excel8.0)....Sheet1$
2.从数据库中导出数据并存到文件中
EXEC master..xp_cmdshell 'bcp CAS2004..HGZ_LIAOJIAN out c:\temp1.xls -c -q -S"."- ......