Moneydance is an easy to use and full-featured personal finance app that doesn't compromise your privacy. With Moneydance, your data is private, encrypted, and never shared.

Moneydance makes any financial task easy with online banking and bill payment, account management, budgeting, investment tracking, multi-currency, as well as detailed graphs and reports.

Objective: Bypass the login authentication without knowing the username or password.

Analysis: The login form appeared to query a backend database. The error messages were verbose. When inputting a single quote ' into the username field, the application returned a SQL syntax error. This indicates the input is not being sanitized and is directly passed to the database query.

Exploitation: To bypass authentication, we utilized a tautology-based SQL Injection. The goal is to make the database query return TRUE regardless of the actual password.

Payload Used:

' OR '1'='1' -- 

Mechanism: The backend query likely looked like this:

SELECT * FROM users WHERE username = '$user' AND password = '$pass'

By injecting the payload, the query transforms into:

SELECT * FROM users WHERE username = '' OR '1'='1' -- ' AND password = ''

Because '1'='1' is always true, and the -- comments out the rest of the query, the database validates the request and logs the user in.

Result: Successful authentication bypass as the Administrator.

Objective: Retrieve a hidden file from the server.

Reconnaissance: The URL structure for a page often looked like index.php?page=about.txt. This suggests the server is including files based on user input.

Analysis: This is a classic Local File Inclusion (LFI) vector. If the script does not sanitize the page parameter, an attacker can traverse directories to read sensitive system files.

Exploitation: We attempted to traverse out of the web root directory to access the Linux password file.

Payload Used:

index.php?page=../../../../etc/passwd

Note: The number of ../ sequences depends on the depth of the current directory.

Result: The contents of /etc/passwd were displayed on the screen, revealing user accounts on the server (the "flag" for this level).


Objective: Find the password hidden on the login page.

Reconnaissance: Upon navigating to the main page, a basic login form was presented. Standard credential attempts (admin/admin) failed.

Analysis: In early web security challenges, a common mistake is "Security through Obscurity"—hiding data in places users aren't expected to look. We viewed the HTML source code of the page (Right-click > View Page Source).

Exploitation: Scrolling through the HTML, specifically looking at the form construction and comments, we found a comment block or a hidden input field often containing the password or a hint.

Result: Entering the found password into the form granted access to the next level.

Specialhacking.webcindario

Objective: Bypass the login authentication without knowing the username or password.

Analysis: The login form appeared to query a backend database. The error messages were verbose. When inputting a single quote ' into the username field, the application returned a SQL syntax error. This indicates the input is not being sanitized and is directly passed to the database query.

Exploitation: To bypass authentication, we utilized a tautology-based SQL Injection. The goal is to make the database query return TRUE regardless of the actual password.

Payload Used:

' OR '1'='1' -- 

Mechanism: The backend query likely looked like this:

SELECT * FROM users WHERE username = '$user' AND password = '$pass'

By injecting the payload, the query transforms into: specialhacking.webcindario

SELECT * FROM users WHERE username = '' OR '1'='1' -- ' AND password = ''

Because '1'='1' is always true, and the -- comments out the rest of the query, the database validates the request and logs the user in.

Result: Successful authentication bypass as the Administrator.

Objective: Retrieve a hidden file from the server.

Reconnaissance: The URL structure for a page often looked like index.php?page=about.txt. This suggests the server is including files based on user input.

Analysis: This is a classic Local File Inclusion (LFI) vector. If the script does not sanitize the page parameter, an attacker can traverse directories to read sensitive system files. Mechanism: The backend query likely looked like this:

Exploitation: We attempted to traverse out of the web root directory to access the Linux password file.

Payload Used:

index.php?page=../../../../etc/passwd

Note: The number of ../ sequences depends on the depth of the current directory.

Result: The contents of /etc/passwd were displayed on the screen, revealing user accounts on the server (the "flag" for this level).


Objective: Find the password hidden on the login page. By injecting the payload, the query transforms into:

Reconnaissance: Upon navigating to the main page, a basic login form was presented. Standard credential attempts (admin/admin) failed.

Analysis: In early web security challenges, a common mistake is "Security through Obscurity"—hiding data in places users aren't expected to look. We viewed the HTML source code of the page (Right-click > View Page Source).

Exploitation: Scrolling through the HTML, specifically looking at the form construction and comments, we found a comment block or a hidden input field often containing the password or a hint.

Result: Entering the found password into the form granted access to the next level.