知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 安全资讯

把sql注入式攻击放入程序中

发布时间:2014-03-03 23:10:05作者:知识屋

Sql注入式攻击,在黑客看来一般是用于攻击别人的网站或者程序,但现在我们可以转换一下思想,利用sql注入式为我们服务。

例如:有一个旧的程序,使用简单三层,这个程序操作的表名是Table1,Table1的字段有:
id(int),column1(nvarchar(50)),column2(nvarchar(50)),adddate(smalldatetime).

其中adddate字段是后加上的,也就是有的数据元素中adddate字段有值,有的是null,在原程序中没有使用adddate字段的值,现在要求使用adddate以判断不同的年份,并且为空的值划分到老数据中(比如null和2013/9/26都属于2013年的数据,2014/1/1的数据属于2014年的数据),不允许更改数据库中的数据。

假设我们在DAL和BLL层中分别写一个可以只传入年份(比如,传入2013,形参名为year)的方法,在Web层中调用。为了用sql注入式方法的思路写程序,我们不对传入的year做过多的逻辑判断,只是把year放入预写好的sql语句中执行(假设我们的查询sql语句很简单,比如:string sql = "select * from Table1 where adddate >= ' "+year+" /1/1' and adddate <= ' "+year+" /12/31' ";),

那么这种情景下取出来的2013年的数据是不包含时间为null的数据元素的。此时我们可以利用sql注入的方式,传year的值为“ ' or adddate is null and 1='1';-- ”,执行后查到的数据就是2013年的和为null的数据.

以上只是我想的一个简单的逆向想法:把原本用于黑别人的东西拿来放在程序中使用以达到正确目的。引深一点就是把原本是有害的东西不一定完全就是有害的(那只是放错了地方),在正确的地方使用会达到很好的效果。

本人是新手,高手勿喷。 (转载网络)

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜