首先来看看登录绕过:
文件/help/php/login.php
这里的用户名密码被硬编码到setting.inc.php文件里面了
当然,当你看到源码后就明白了,这里的弱加密和默认弱口令了。。。
当登录成功后,$_SESSION["user"]=$user;
然后我们来看setup.php文件
这里判断了$_SESSION["user"]=="",但是没有exit(),而是header跳转了
这样的话就跟没判断一样,下面的内容继续执行。
下面我们来看看第一处,第二处getshell了
还是setup.php文件
注意这里的setup函数,$setting变量是我们传进来的内容
然后通过处理后进入了第一个函数:updatePHPSetting($setting);
跟进updatePHPSetting函数,util.inc.php文件:
这里看到将$setting参数内容直接写入到了setting.inc.php文件中
从而导致我们可以控制$setting变量的内容,然后写入恶意内容到setting.inc.php文件中
继续往下走$setting还会进入updateDbSetting($setting);,跟进updateDbSetting函数:
可见跟上面的原理一样,将$setting参数内容直接写入到了setting.inc.php文件中
下面我们来看看第三处,第四处getshell了
文件/help/php/addTheme.php
首先同样存在登录验证绕过问题
然后就是调用了addNewTheme函数
最后我们可控的参数$file,$themeTitle,$themeContent进入到了函数writeHtmlFile();
跟进函数writeHtmlFile():
从这里可以看出,将参数$content的内容经过处理后,写入到了$name文件中
$name和$content参数我们都可控,导致我们可以写任意内容到目录下任意文件了
第四处getshell在文件/help/php/modifyTheme.php文件
可以看到跟第三处的基本一样,都是:
writeHtmlFile($file,$themeTitle,$themeContent);
这里造成的问题,导致我们可以写任意内容到目录下任意文件了
第一处setup.php:
因为$userFilePath=$setting[14];还最后一个参数值
我们提交如下内容:
我们将$userFilePath=$setting[14]=/help/userfiles/';eval($_POST['***']);echo '
这样就可以写入一句话到setting.inc.php中了
第三处getshell,addTheme.php文件
这里在提交内容时,我们只关心最后两个参数值,一个为content,一个为filename:
xajaxargs[]=<?php phpinfo();?>&xajaxargs[]=***.php
这样我们就可以写入<?php phpinfo();?>到***.php文件中了
当然你写什么,写到那个目录都是可以的
拿到webshell后,想干什么就干什么咯
下面紧给出页面截图,没有进行任何功能操作
拿到shell后,读取/help/php/setting.inc.php文件
拿到admin和password,然后可以在这里登录:
http://*.*.*.*/help/php/login.php
这里是系统配置文件。
拿此用户名密码直接登录前台:
http://*.*.*.*/index.php,如某机房能源管理系统:
来看看系统管理模块的内容:
http://*.*.*.*/modules/manage/,泄露各种信息
因为这是机房能源系统,所以可以控制机房的能源情况,比如这里可以禁止,开放,终止,恢复各个机房的能源情况
这里可以利用泄露的信息直接登录目标主机
网段内存活的主机:
主机数据库:
这里的主机应该是总服务器,可以管理多个节点
这里在登录sysmgr时,需要用户名密码,用户名为admin,但是密码不知道,奇葩的时,你把鼠标放到输入框,会提示按F2可以修改密码,而且可以绕过旧密码直接修改新密码,成功登录管理控制台
这里可以看到有三个节点,一个是这里的本机10.1.3.190,10.1.3.189,10.1.3.191
远程一下这些节点,更有惊喜,不需要密码直接登录了。。。
上述截图紧做证明,未进行功能操作