Session hijacking involves an attacker stealing a valid user session ID to gain access to a system and retrieve data. There are several types of session hijacking such as predictable session tokens, session sniffing, and man-in-the-middle attacks. To perform session hijacking, an attacker places themselves between the victim and target server, monitors packet flows, and predicts sequence numbers to take over the user's session and inject packets to the target server. Mitigations include using HTTPS, a VPN, limiting exposure to untrusted networks, and educating employees. Tools that can be used for session hijacking include Firesheep and other programs.