Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amarelo Designs (resolution) #631

Closed
wants to merge 2 commits into from
Closed

Conversation

RayTdC
Copy link
Collaborator

@RayTdC RayTdC commented May 9, 2024

This solution refers to which of the apps?

A8 - Amarelo Designs

What did you do to mitigate the vulnerability?

The app had a security flaw, which allowed the attacker to execute code remotely through a serialization vulnerability. The pickle module in Python is widely used to serialize and deserialize Python objects. However, its suitability depends on the context in which it is being used. In this case, JWT (JSON Web Token) was used, as Pickle's functionality allowed the attacker to access the machine through a reverse shell requested through the serialization vulnerability, which is where pickle is capable of serializing Python objects that may contain malicious code. When using JWT for serialization and deserialization, you have additional security benefits provided by authentication and signature verification, which are recommended in this app to prevent remote execution of malicious code.

The images below show the successful hacking attempt on the machine.

Captura de Tela 2024-05-08 às 10 46 57

Captura de Tela 2024-05-08 às 10 47 48

After the changes, it is no longer possible to access the machine as root.

Captura de Tela 2024-05-08 às 10 49 12

Captura de Tela 2024-05-08 às 10 50 36

resp = make_response(redirect("/user"))
resp.set_cookie("sessionId", encodedSessionCookie)
resp.set_cookie("token", token)

Check warning

Code scanning / CodeQL

Failure to use secure cookies Medium

Cookie is added without the Secure and HttpOnly attributes properly set.


if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0')
app.run(debug=True, host='0.0.0.0')

Check failure

Code scanning / CodeQL

Flask app is run in debug mode High

A Flask app appears to be run in debug mode. This may allow an attacker to run arbitrary code through the debugger.
@eduquintanilha
Copy link
Contributor

Very nice, @RayTdC! After your changes I could not reproduce the attack scenario anymore! 🚀🐼

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants