Hacking Corporate Banking For Fun & Profit
This talk demonstrates multiple vulnerabilities in a corporate banking application, including broken access control, insecure direct object references (IDOR), and SQL injection. The researchers identify flaws in the application's role-based access control and event-based parameter handling, allowing for unauthorized administrative actions and database dumping. The presentation highlights the risks of improper session management and insufficient input validation in complex, multi-role financial systems. The researchers successfully exploited these vulnerabilities to gain administrative access and extract sensitive data.
Bypassing Role-Based Access Control in Corporate Banking Applications
TLDR: This research highlights how improper session management and event-based parameter handling in a corporate banking application allowed for full administrative access and database extraction. By manipulating event and widget IDs, the researchers bypassed role-based access controls to perform unauthorized actions. The findings underscore the critical need for server-side validation of user roles and permissions, rather than relying on client-side state management.
Corporate banking applications are often treated as black boxes by security teams, shielded by layers of complexity and the assumption that their internal logic is inherently secure. This research proves that assumption wrong. When you peel back the layers of a complex, multi-role financial system, you often find that the security model is built on a foundation of sand. The researchers behind this talk demonstrated that by simply manipulating event and widget IDs, they could escalate privileges from a standard user to an administrator and dump the entire backend database.
The Mechanics of the Bypass
At the heart of this vulnerability is a failure in how the application manages state and permissions across different user roles. The application utilized a three-role system: Maker, Verifier, and Authorizer. Each role was intended to have specific, limited permissions. However, the application relied on client-side parameters to determine which functionality was available to the user.
The researchers discovered that the application used specific event IDs and widget IDs to trigger backend functions. By capturing these requests in Burp Suite, they realized that the server did not adequately validate whether the user had the necessary permissions to execute the requested action. Instead, the server checked if the user’s role had "dual-role" capabilities or if the request could be authorized by another user.
The researchers used a simple grep script to identify all available event IDs within the application's JavaScript files. Once they had a list of these IDs, they could systematically test each one to see if it could be triggered by an unauthorized role.
grep -r "eventID" /path/to/js/files
By injecting these event IDs into the request parameters, they were able to access administrative panels and perform actions that should have been restricted. The application’s reliance on client-side logic meant that the server was essentially trusting the user to only request actions they were authorized to perform.
Escalation and Data Extraction
Once the researchers gained access to the administrative panels, they moved to exploit the application's input handling. They discovered that several parameters were vulnerable to SQL injection. Because the application used an Oracle Database, they were able to use sqlmap to automate the process of dumping the database.
The vulnerability was particularly severe because the application failed to sanitize input in the "Relationship Manager" field. By injecting a payload into this field, they could trigger a blind SQL injection, allowing them to extract sensitive customer data.
-- Example of a blind SQL injection payload
' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)--
This is a classic example of OWASP A03:2021-Injection. The application failed to implement proper parameterized queries, leaving the database exposed to anyone who could manipulate the input parameters. The impact was total: they could access customer account information, transaction history, and potentially even modify account settings.
Real-World Applicability for Pentesters
For a pentester or bug bounty hunter, this research is a goldmine. It highlights the importance of looking beyond the obvious vulnerabilities and digging into the application's logic. When you are testing a complex application, don't just look for common vulnerabilities like XSS or CSRF. Look for how the application handles state, how it validates user roles, and how it processes input.
If you encounter an application that uses event IDs or widget IDs to trigger functionality, start by mapping these IDs. See if you can trigger them from an unauthorized role. If you find a vulnerability, don't stop there. See if you can escalate your privileges or extract sensitive data. The goal is to demonstrate the full impact of the vulnerability, not just that it exists.
Defensive Strategies
The root cause of these vulnerabilities is a lack of server-side validation. Developers must ensure that every request is validated on the server, regardless of what the client-side code says. This means implementing robust OWASP A01:2021-Broken Access Control measures, such as enforcing role-based access control on the server and ensuring that all input is properly sanitized and parameterized.
Defenders should also implement comprehensive logging and monitoring to detect suspicious activity. If a user is suddenly accessing administrative panels or performing actions that are outside of their normal behavior, the system should flag it and alert the security team. Finally, regular security assessments and penetration tests are essential to identify and remediate these types of vulnerabilities before they can be exploited by malicious actors.
The next time you are auditing a financial application, look for the gaps between the client-side interface and the server-side logic. That is where the most critical vulnerabilities are often hidden. If you can find those gaps, you can demonstrate the real-world risk and help your clients build more secure systems.
Vulnerability Classes
Tools Used
Target Technologies
All Tags
Up Next From This Conference

Breaking Secure Web Gateways for Fun and Profit

Listen to the Whispers: Web Timing Attacks That Actually Work

Abusing Windows Hello Without a Severed Hand
Similar Talks

Kill List: Hacking an Assassination Site on the Dark Web

Firewalls Under Fire: China's Ongoing Campaign to Compromise Network Protection Devices

