Too Long; Didn't Read
In level 4 of the Ethernaut Game our goal is to claim ownership of the `Telephone` contract. In this game we use a simple contract with only one function and constructor that assigns the ownership to the address that deployed the contract. To claim the ownership we need to first understand what is the difference between `tx.origin` and `msg.sender` and why contracts that use the `txorigin` to authorize users are vulnerable to phishing attacks. We need to create a new malicious contract and encourage the owner to call a specific function that under the hood will change the ownership.