Home Broken Access Control -> MFLAC
Post
Cancel

Broken Access Control -> MFLAC

Broken Access Control: Missing Function Level Access Control (MFLAC)

Missing function level authorization security vulnerability occurs when there are insufficient authorization checks for sensitive request handlers. This common vulnerability allows malicious users to access restricted resources by escalating their permissions at the function level. Missing Function Level Access Control (MFLAC) is similar to IDOR but this time, broken access control is on functions rather than objects.

Exploitation

This webapp implements weak access control on a functions, which can be exploited to abuse administrative function Delete to delete user’s account. Delete function is meant to be used by Administrator.

Let’s login as Tom with the provided password tom.

baf

baf

As you can see we have two functions here, SearchStaff and ViewProfile. Let’s click on SearchStaff and intercept the request in burpsuite.

baf

Here, it looks like the value of action which is SearchStaff, is the name of a function to be invoked in the backend. By examining the value, we will notice that it is in Camelcase style and it startswith the verb which reveals the purpose of the function. For example, SearchStaff , startswith verb Search which means the function will search for Staff. If the function was to delete a staff, the value would have been something like DeleteStaff.

Let’s click on ViewProfile and intercept the request in burpsuite.

baf

As you can see, from the value ViewProfile we will understand that the purpose of the function is to view user’s profile. We will forward the request and see what will can get.

baf

Here we have the profile of tom.

What if there is a hidden function that can be used to delete user’s profile? If so, then we can be able to predict the name of the function as something like DeleteProfile since all the function use Camelcase style. To test this, we will replace ViewProfile with DeleteProfile and see if we can delete user’s profile.

baf

Let’s forward the request.

baf

Great!, We were able to use Delete function which was meant to be used by Administrator.

References

This post is licensed under CC BY 4.0 by the author.