來(lái)自學(xué)長(zhǎng)的PHP小作業(yè).....

第一題:


這是源碼。

可以看到這里要求password只能傳入字母和數(shù)字,而后面的strpos語(yǔ)句又要求password里面必須含有“--”才能輸出flag里面的值,很明顯這是矛盾的。要繞過(guò)判斷就利用了ereg函數(shù)的%00截?cái)嗦┒础.?dāng)輸入的值中含有%00的時(shí)候,%00以及后面的字符會(huì)被函數(shù)忽略。所以輸入a%00--就能獲取flag。


第二題:


這塊代碼看著很長(zhǎng),實(shí)際分為三部分,$a、$b、$c能被成功賦值就能獲取正確結(jié)果。

第一個(gè):

switch語(yǔ)句中,$x1被賦值1或0就能使得$a被賦值,而1又被條件判斷語(yǔ)句排除,所以簡(jiǎn)單賦值0就行了。

第二個(gè):

輸入的x2會(huì)被以json格式解碼再以array類型賦給x2,所以輸入要符合json格式。后面兩句的意思是x21不能是純數(shù)字,但又必須大于2017,很明顯要利用PHP的弱類型,同樣能得到想要的結(jié)果。

第三個(gè):

兩個(gè)if語(yǔ)句要求x22是個(gè)array,同時(shí)里面只有兩個(gè)element而且第一個(gè)不能為零。array_search語(yǔ)句是把字符串以兩個(gè)等號(hào)的形式分別與x22里面的數(shù)據(jù)比較,而字符串與整數(shù)比較的時(shí)候會(huì)被轉(zhuǎn)化為0,所以x22中一個(gè)element的值為零就行了。element的值不能設(shè)置為字符串的內(nèi)容,因?yàn)橄旅嬉蟛荒芎凶址膬?nèi)容。


總的輸入和結(jié)果。

第三題:


這道題的pass是未知的,所以沒(méi)法直接輸入準(zhǔn)確的值通過(guò)判斷。這時(shí)就利用了strcmp函數(shù)的漏洞,只需要輸入一個(gè)array就像這樣?password[]=1就能使判斷成立。strcmp函數(shù)的參數(shù)中,如果含有數(shù)組的話,比較是直接成立的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容