PHPWEB重装漏洞+%00截断拿webshell

首先我们看到需要数据库服务器地址

那么我们就自己搭建一台数据库服务器。

继续下一步

接下来我们可以重置后台管理员密码

重置管理员密码成功

正如安装完成的提示所说,请删除【install】目录(可是大部分安全意识不强的站长并没有删除,啪啪啪,打脸了)。

成功进入后台管理系统

phpweb `cms` 添加文章上传存在经典的%00截断漏洞。

截断的产生核心,就是chr(0)字符 。

这个字符即不为空(Null),也不是空字符(""),更不是空格!

当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生的原因。

php 5.3.4中修复了0字符,但是在之前的版本中仍然危害巨大。

简单测试一下 (PHP 版本<5.3.4)

<?php

$data = $_GET[“filename”]`;

echo $data;

?>

url中输入xx.php?filename=test.php%00.txt,实际输出为test.php.

常见利用方法:

  • 1.上传时路径可控,使用00截断
  • 2.文件下载时,00截断绕过白名单检查
  • 3.文件包含时,00截断后面限制(主要是本地包含时)
  • 4.其它与文件操作有关的地方都可能使用00截断

下面请看实例

成功拿到webshell

总结:

正如安装完成的提示所说,请删除【install】目录。

及时升级php版本以便修复缺陷。

//_config.yml文件若没有添加enable: true可删除该判断