Note that by certain setups I mean installations under lightweight containers such as Alpine Linux. In this example situation, the gethostbyaddr is handled by musl libc which does not properly check the DNS PTR response. I have yet to ascertain whether this is exploitable under normal conditions but I believe it not to be the case.
An example Proof of Concept is if a user registers from the ip 93.113.125.10 and then the admin checks the user page triggering the inclusion of the PTR record in the response.
Although the document.cookie cannot be exfiltrated due to HttpOnly, a CSRF can still be executed to create a dynamic page (leading to RCE) or just to get the flags of all the challenges.
An example payload for stealing a flag would be this:
In certain setups, it is possible to use the unescaped
gethostbyaddr
present in the users view of the admin panel to gain admin control. The issue is present here: https://github.com/Nakiami/mellivora/blob/c2571f65a205e3266df5c952715203123c45ee30/include/layout/user.inc.php#L303Note that by certain setups I mean installations under lightweight containers such as Alpine Linux. In this example situation, the
gethostbyaddr
is handled by musl libc which does not properly check the DNS PTR response. I have yet to ascertain whether this is exploitable under normal conditions but I believe it not to be the case.An example Proof of Concept is if a user registers from the ip 93.113.125.10 and then the admin checks the user page triggering the inclusion of the PTR record in the response.
Although the document.cookie cannot be exfiltrated due to HttpOnly, a CSRF can still be executed to create a dynamic page (leading to RCE) or just to get the flags of all the challenges.
An example payload for stealing a flag would be this: