[MajorSecurity Advisory #51]Virtual Hosting Control System - Session fixation Issue Details ======= Product: Virtual Hosting Control System Affected version: 2.4.7.1 and prior Remote-Exploit: yes Vendor-URL: http://www.vhcs.net Vendor-Status: informed Advisory-Status: published Credits ============ Discovered by: David Vieira-Kurz http://www.majorsecurity.de Original Advisory: ============ http://www.majorsecurity.de/index_2.php?major_rls=major_rls51 Introduction ============ "VHCS is a Professional Control Panel Software for shared, reseller, virtual and dedicated server management." - from vhcs.net More Details ============ 1. Session fixation: The "PHPSESSID" parameter can be set to a malicious and arbitrary value. 1.1 Description: In a session fixation attack, the attacker fixes the user's session ID before the user even logs into the target server. After a user's session ID has been fixed, the attacker will wait for them to login. Once the user does so, the attacker uses the predefined session ID value to assume their online identity. PoC: ============ http://localhost/vhcs2-2.4.7.1/gui/?PHPSESSID=15031988 Workaround: ============ 1. Do not accept session identifiers from GET / POST variables. 2.Regenerate SID on each request. 3. Accept only server generated SID: One way to improve security is to not accept session identifiers not generated by server. if ( ! isset( $_SESSION['SERVER_GENERATED_SID'] ) ) { session_destroy(); // destroy all data in session } session_regenerate_id(); // generate a new session identifier $_SESSION['SERVER_GENERATED_SID'] = true; History/Timeline ================ 18.07.2007 discovery of the vulnerability 20.07.2007 contacted the vendor 20.07.2007 hotfix sent to the vendor 21.07.2007 advisory is written 21.07.2007 advisory released MajorSecurity ======= MajorSecurity is a non-profit German penetration testing and security research project which consists of only one person at the present time. http://www.majorsecurity.de/