點選右上角的選單,有一個payflag,直接點選,進入到了pay.php頁面
發現,需要得到flag有兩個要求:必須是該校的學生,密碼必須正確。
在該頁面的網頁底部,有程式碼提示,要求密碼不能是純數字,最後又要==404密碼才正確。我們可以想到利用php的弱型別比較:只要字首有404就好。
那需要做的就是獲取該校學生的身份即可。直接抓包看下能否利用某個欄位實現許可權獲取。
抓包發現cookie欄位中有個user=0,我們直接修改為1,型別修改為POST,加上密碼再發回去。發現沒反應,這裡有個坑,如果直接在burp suite中將GET修改為POST,型別還是GET,並沒有修改成功。需要先使用hack bar的POST功能抓包,再修改。
這裡說賬號密碼對了,還需要付錢,猜測欄位為money。增加money欄位設定為100000000
但是說密碼太長,這裡可以才有科學技術法,寫成1e9;也可以使用strcmp陣列繞過。
strcmp函式的作用:比較兩個字串,如果str1<str2 則返回<0 如果str1大於str2返回>0 如果兩者相等 返回0。但是如果強行傳入其他型別引數,會出錯,出錯後返回值0,正是利用這點進行繞過。有人說這個漏洞僅存在與php5.3之前,但經驗證7.3仍存在這個漏洞。