Apache Axis2 Detection (HTTP)
🗓️ 20 Sep 2010 00:00:00Reported by Copyright (C) 2010 Greenbone AGType
openvas🔗 plugins.openvas.org👁 217 Views
| Source | Link |
|---|---|
| axis | www.axis.apache.org/axis2/c/core/ |
| axis | www.axis.apache.org/axis2/java/core/ |
# SPDX-FileCopyrightText: 2010 Greenbone AG
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-only
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.100813");
script_version("2026-06-25T06:55:31+0000");
script_tag(name:"last_modification", value:"2026-06-25 06:55:31 +0000 (Thu, 25 Jun 2026)");
script_tag(name:"creation_date", value:"2010-09-20 15:31:27 +0200 (Mon, 20 Sep 2010)");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:N/I:N/A:N");
script_tag(name:"cvss_base", value:"0.0");
script_name("Apache Axis2 Detection (HTTP)");
script_category(ACT_GATHER_INFO);
script_family("Product detection");
script_copyright("Copyright (C) 2010 Greenbone AG");
script_dependencies("find_service.nasl", "no404.nasl", "webmirror.nasl",
"DDI_Directory_Scanner.nasl", "global_settings.nasl");
script_require_ports("Services/www", 8080);
script_exclude_keys("Settings/disable_cgi_scanning");
script_tag(name:"summary", value:"HTTP based detection of Apache Axis2, a Web Services / SOAP /
WSDL engine, the successor to the widely used Apache Axis SOAP stack.");
script_xref(name:"URL", value:"https://axis.apache.org/axis2/java/core/");
script_xref(name:"URL", value:"https://axis.apache.org/axis2/c/core/");
script_tag(name:"qod_type", value:"remote_banner");
exit(0);
}
include("http_func.inc");
include("http_keepalive.inc");
include("port_service_func.inc");
include("list_array_func.inc");
include("host_details.inc");
include("cpe.inc");
port = http_get_port( default:8080 );
host = http_host_name( dont_add_port:TRUE );
banner = http_get_remote_headers( port:port );
if( banner && egrep( string:banner, pattern:"^[Ss]erver\s*:\s*Simple-Server", icase:FALSE ) ) {
# nb: Axis2 running on binary distribution, no need to iterate over all other directories...
dirs = make_list( "/axis2" );
} else {
# nb: Axis2 running on Tomcat or similar application servers
dirs = make_list_unique(
"/axis2", # Standard one
"/imcws", # SAP Business Objects 12 and/or 3com IMC (See CVE-2010-2103)
"/WebServiceImpl", # Computer Associates ARCserve D2D r15 Web Service (See CVE-2010-0219 / https://www.exploit-db.com/exploits/15869)
"/dswsbobje", # SAP BusinessObjects Enterprise XI 3.2 (See CVE-2010-0219)
"/BusinessProcessBI", # SAP BusinessObjects as well
"/ws", # Currently unknown
"/MicroStrategyWS", # Microstrategy Web 10.4 (See CVE-2020-11450)
"/Api", # VMware Smarts NCM
"/jboss-net", # JBoss.net Axis integration
"/tomcat", # Both for Tomcat, seen "in the wild"
"/tomcat/axis",
"/wssgs", # Both for JBuilder Apache Axis
"/tresearch",
"/infranetwebsvc", # Both for Oracle Communications Billing and Revenue Management Web Services Manager from:
"/BrmWebServices", # https://docs.oracle.com/cd/E16754_01/doc.75/e16724/wsm_deploy.htm
"/axis2-AWC", # Seen on https://labs.watchtowr.com/where-theres-smoke-theres-fire-mitel-micollab-cve-2024-35286-cve-2024-41713-and-an-0day/ for Mitel MiCollab
"/platform-services", # Seen on https://ssd-disclosure.com/cisco-unified-communications-manager-arbitrary-file-write-to-rce/ for Cisco Unified Communications Manager (CUCM)
http_cgi_dirs( port:port, host:host ) );
}
foreach dir( dirs ) {
detected = FALSE;
install = dir;
if( dir == "/" )
dir = "";
# nb: Version service on newer Axis2 versions
url1 = dir + "/services/Version/getVersion";
buf1 = http_get_cache( item:url1, port:port );
# nb: Admin interface for < 1.8.x
url2 = dir + "/axis2-admin/";
buf2 = http_get_cache( item:url2, port:port );
# nb: Overview page
url3 = dir + "/axis2-web/index.jsp";
buf3 = http_get_cache( item:url3, port:port );
# nb: Old location of Version service for Axis2 0.93 and below
url4 = dir + "/services/version/getVersion";
buf4 = http_get_cache( item:url4, port:port );
# nb: "Happiness" page for 1.x
url5 = dir + "/axis2-web/HappyAxis.jsp";
buf5 = http_get_cache( item:url5, port:port );
# nb: Admin interface for >= 1.8.x
url6 = dir + "/axis2-admin/welcome";
buf6 = http_get_cache( item:url6, port:port );
# nb: "Happiness" page for 0.9x
url7 = dir + "/HappyAxis.jsp";
buf7 = http_get_cache( item:url7, port:port );
# nb: Admin interface for 0.9x
url8 = dir + "/Login.jsp";
buf8 = http_get_cache( item:url8, port:port );
# nb: Another "landing" page
url9 = dir + "/";
buf9 = http_get_cache( item:url9, port:port );
if( buf1 =~ "Hello I am Axis2" ||
( "getVersionResponse" >< buf1 && "the Axis2 version is" >< buf1 ) ||
"The system is attempting to access an inactive service: Version" >< buf1 ||
"The service cannot be found for the endpoint reference (EPR)" >< buf1 ||
"Service Not found EPR is" >< buf1 ) {
detected = TRUE;
concludedUrl = " " + http_report_vuln_url( port:port, url:url1, url_only:TRUE );
}
if( "<title>Login to Axis2 :: Administration page</title>" >< buf2 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url2, url_only:TRUE );
}
if( "<title>Axis 2 - Home</title>" >< buf3 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url3, url_only:TRUE );
}
if( buf4 =~ "Hello I am Axis2" ||
( "getVersionResponse" >< buf4 && "the Axis2 version is" >< buf4 ) ||
"The system is attempting to access an inactive service: Version" >< buf4 ||
"The service cannot be found for the endpoint reference (EPR)" >< buf4 ||
"Service Not found EPR is" >< buf4 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url4, url_only:TRUE );
}
if( "<title>Axis2 Happiness Page</title>" >< buf5 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url5, url_only:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/detected", value:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/http/detected", value:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/http/" + host + "/" + port + "/urls", value:url5 );
}
if( "<title>Login to Axis2 :: Administration page</title>" >< buf6 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url6, url_only:TRUE );
}
if( "<title>Axis2 Happiness Page</title>" >< buf7 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url7, url_only:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/detected", value:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/http/detected", value:TRUE );
set_kb_item( name:"apache/axis2/happiness_page/http/" + host + "/" + port + "/urls", value:url7 );
}
# nb:
# - This is slightly different to the others and even has a typo (at least on 0.93)
# - We're checking both, the typo and the correct spelling just to be sure...
if( "<title>Login to Axis2:: Administartion page</title>" >< buf8 ||
"<title>Login to Axis2:: Administration page</title>" >< buf8 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url8, url_only:TRUE );
}
if( "<title>Axis 2 - Home</title>" >< buf9 ) {
detected = TRUE;
if( concludedUrl )
concludedUrl += '\n';
concludedUrl += " " + http_report_vuln_url( port:port, url:url9, url_only:TRUE );
}
if( detected ) {
version = "unknown";
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.8.2</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.7.9</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.7.2</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.6.1</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.5</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hello I am Axis2 version service , My version is 1.4.1</ns:return></ns:getVersionResponse>
# <ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hello I am Axis2 version service , My version is 1.4</ns:return></ns:getVersionResponse>
# <my:Version xmlns:my="http://localhost/my">Hello I am Axis2 version service , My version is 0.93 Dec 02, 2005 (08:36:23 LKT)</my:Version>
vers = eregmatch( string:buf1, pattern:"version is ([0-9.]+)", icase:TRUE );
if( isnull( vers[1] ) )
vers = eregmatch( string:buf4, pattern:"version is ([0-9.]+)", icase:TRUE );
if( ! isnull( vers[1] ) ) {
version = chomp( vers[1] );
concluded = vers[0];
}
set_kb_item( name:"apache/axis2/detected", value:TRUE );
set_kb_item( name:"apache/axis2/http/detected", value:TRUE );
cpe = build_cpe( value:version, exp:"([0-9.]+)", base:"cpe:/a:apache:axis2:" );
if( ! cpe )
cpe = "cpe:/a:apache:axis2";
register_product( cpe:cpe, location:install, port:port, service:"www" );
log_message( data:build_detection_report( app:"Apache Axis2",
version:version,
install:install,
cpe:cpe,
concludedUrl:concludedUrl,
concluded:concluded ),
port:port );
exit( 0 );
}
}
exit( 0 );
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
25 Jun 2026 00:00Current
5.9Medium risk
Vulners AI Score5.9