通达OA_文件包含漏洞

这篇具有很好参考价值的文章主要介绍了通达OA_文件包含漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、漏洞描述

复现靶场:通达2017版
漏洞文件:td\webroot\ispirit\interface\gateway.php
漏洞地址: /mac/gateway.php
漏洞POC:json={“url”:“/general/…/…/mysql5/my.ini”}
利用工具:https://github.com/dioos886/Tongda_File_contains

二、原始gateway.php文件代码

<?php

ob_start();
include_once "inc/session.php";
include_once "inc/conn.php";
include_once "inc/utility_org.php";

if ($P != "") {
	if (preg_match("/[^a-z0-9;]+/i", $P)) {
		echo _("非法参数");
		exit();
	}

	session_id($P);
	session_start();
	session_write_close();
	if (($_SESSION["LOGIN_USER_ID"] == "") || ($_SESSION["LOGIN_UID"] == "")) {
		echo _("RELOGIN");
		exit();
	}
}

if ($json) {
	$json = stripcslashes($json);
	$json = (array) json_decode($json);

	foreach ($json as $key => $val ) {
		if ($key == "data") {
			$val = (array) $val;

			foreach ($val as $keys => $value ) {
				$keys = $value;
			}
		}

		if ($key == "url") {
			$url = $val;
		}
	}

	if ($url != "") {
		if (substr($url, 0, 1) == "/") {
			$url = substr($url, 1);
		}

		if ((strpos($url, "general/") !== false) || (strpos($url, "ispirit/") !== false) || (strpos($url, "module/") !== false)) {
			include_once $url;
		}
	}

	exit();
}

?>

根据PHP代码存在以下问题

三、文件包含漏洞:

if ($url != "") {
    if (substr($url, 0, 1) == "/") {
        $url = substr($url, 1);
    }

    if ((strpos($url, "general/") !== false) || (strpos($url, "ispirit/") !== false) || (strpos($url, "module/") !== false)) {
        include_once $url;
    }
}

这部分代码允许从外部传递的JSON数据中提取$url,然后通过include_once包含该URL。这样的代码非常危险,因为攻击者可以构造恶意的URL来包含任意文件。解决这个问题的方法是严格限制可以包含的文件,或者使用白名单来验证文件路径。

文件包含代码部分

这段PHP代码的主要目的是包含文件,但它存在安全问题,因为未对输入进行充分验证和过滤,导致文件包含漏洞。让我详细解释这段代码的运行流程和作用:

  1. 条件检查:代码的第一行是一个条件检查,它检查变量 $url 是否为空字符串。如果 $url 不为空(即有值),则会继续执行后续的代码。

  2. URL 规范化:接下来,代码使用 substr 函数检查 $url 的第一个字符是否是斜杠 /。如果 $url 的第一个字符是斜杠,代码将使用 substr 函数将斜杠去掉,以规范化 $url,确保它不以斜杠开头。这一步的目的是为了确保 $url 的格式符合预期。

  3. 包含文件:最后,代码使用 strpos 函数检查 $url 是否包含子字符串 “general/”、“ispirit/” 或 “module/” 中的任何一个。如果 $url 中包含任何一个子字符串,代码将使用 include_once 函数来包含 $url 指定的文件。

    • 如果 $url 中包含 “general/”,则会尝试包含名为 “general/” 的文件。
    • 如果 $url 中包含 “ispirit/”,则会尝试包含名为 “ispirit/” 的文件。
    • 如果 $url 中包含 “module/”,则会尝试包含名为 “module/” 的文件。

需要注意的是,如果 $url 中包含多个子字符串(例如 “general/” 和 “ispirit/”),那么将尝试依次包含这些文件,而不会同时包含多个文件。

这段代码的主要问题在于它没有对 $url 进行足够的输入验证和过滤,因此存在文件包含漏洞。攻击者可以构造恶意的 $url,以尝试包含系统中的敏感文件。为了增加安全性,应该对传入的 $url 进行严格的验证和白名单控制,确保只能包含可信任的文件,同时避免包含恶意文件。

gateway.php文件中的Json未对输入进行充分过滤和验证

$json = stripcslashes($json);
$json = (array) json_decode($json);

foreach ($json as $key => $val ) {
    if ($key == "data") {
        $val = (array) $val;

        foreach ($val as $keys => $value ) {
            $keys = $value;
        }
    }

    if ($key == "url") {
        $url = $val;
    }
}

这段代码对传入的JSON数据进行了处理,但没有充分验证和过滤输入。恶意用户可以发送恶意JSON数据,导致不可预料的问题。建议对输入数据进行严格的验证和过滤,以防止恶意输入。文章来源地址https://www.toymoban.com/news/detail-709153.html

到了这里,关于通达OA_文件包含漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通达OA前台任意用户登录漏洞复现

    通达OA是一套国内常用的办公系统,此次安全更新修复的高危漏洞为任意用户登录漏洞。攻击者在远程且未经授权的情况下,通过利用此漏洞,可以直接以任意用户登录系统。 通达OA11.5 通达OA 2017版本 1、下载https://cdndown.tongda2000.com/oa/2019/TDOA11.4.exe,安装,访问,如下,安装成

    2024年02月11日
    浏览(53)
  • 通达OA SQL注入漏洞【CVE-2023-4166】

    免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 通达OA系统,即Offic Anywhere,又称为网络智

    2024年02月13日
    浏览(37)
  • 【新】通达OA前台反序列化漏洞分析

    0x01 前言 注:本文仅以安全研究为目的,分享对该漏洞的挖掘过程,文中涉及的所有漏洞均已报送给国家单位,请勿用做非法用途。 通达OA作为历史上出现漏洞较多的OA,在经过多轮的迭代之后已经很少前台的RCE漏洞了。一般来说通达OA是通过auth.inc.php文件来进行鉴权,如图

    2024年02月14日
    浏览(45)
  • 通达OA v11.9 getdata任意命令执行漏洞复现+利用

          通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、移动办公等,帮助广大用户降低沟通和

    2024年02月05日
    浏览(87)
  • 通达OA v11.7 auth_mobi.php 在线用户登录漏洞复现

    一、前言 通达OA,Office Anywhere的首字母,是通达信科旗下的品牌。通达OA v11.7 中存在某接口查询在线用户,当用户在线时会返回 PHPSESSION使其可登录后台系统 二、环境搭建 下载:TDOA11.7.exe 一路下一步 安装完成,访问本地80端口即可 三、影响范围 通达OA v11.7 四、漏洞复现 访

    2024年02月10日
    浏览(46)
  • 渗透测试漏洞原理之---【组件安全】

    A9:2017-Using Components with Known Vulnerabilities A06:2021 – Vulnerable and Outdated Components 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据 丢失或服务器接管。同时,使用含有已知漏洞的组件

    2024年02月09日
    浏览(46)
  • 渗透测试漏洞原理之---【业务安全】

    1.1业务安全现状 1.1.1、业务逻辑漏洞 近年来,随着信息化技术的迅速发展和全球一体化进程的不断加快,计算机和⽹络已经成为与所有⼈都息息相关的⼯具和媒介,个⼈的⼯作、⽣活和娱乐,企业的管理,乃⾄国家的发展和改⾰都⽆处其外。信息和互联⽹带来的不仅仅是便利

    2024年02月09日
    浏览(41)
  • 渗透测试漏洞原理之---【任意文件读取漏洞】

    1、概述 一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。 任意文件读取会造成(敏感)信息泄露; 任意文件读取大多数情况是由

    2024年02月10日
    浏览(50)
  • 安全评估之漏洞扫描、基线检查、渗透测试

    为保证业务系统运营的安全稳定,在业务系统上线前需要开展三同步检查,针对新业务系统上线、新版本上线、项目验收前开展安全评估。可以帮助其在技术层面了解系统存在的安全漏洞。今天就来了解一下安全评估之漏洞扫描、基线检查、渗透测试。 安全评估的内容主要涉

    2024年02月11日
    浏览(55)
  • [渗透测试]—4.2 Web应用安全漏洞

    在本节中,我们将学习OWASP(开放网络应用安全项目)发布的十大Web应用安全漏洞。OWASP十大安全漏洞是对Web应用安全风险进行评估的标准,帮助开发者和安全工程师了解并防范常见的安全威胁。 概念 :注入漏洞发生在应用程序将不可信的数据作为命令或查询的一部分执行时

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包