柚子快報(bào)邀請(qǐng)碼778899分享:ctf 02-攻防世界PHP2
柚子快報(bào)邀請(qǐng)碼778899分享:ctf 02-攻防世界PHP2
題目
authenticate:證明什么是真的
解題
觀察題目可知,訪(fǎng)問(wèn)index.phps可能會(huì)有不一樣的發(fā)現(xiàn)
http://61.147.171.105:51671/index.phps訪(fǎng)問(wèn)該鏈接,可以得到下面的界面
這里只顯示出了部分代碼,右鍵該界面,點(diǎn)擊查看源代碼,我們便可以查看到所有代碼
這是一個(gè) PHP 代碼片段,用于檢查用戶(hù)是否具有訪(fǎng)問(wèn)網(wǎng)站的權(quán)限
第1行是 PHP 的開(kāi)頭標(biāo)記,表示 PHP 代碼的開(kāi)始。
第2行檢查通過(guò) URL 傳遞的 'id' 參數(shù)的值是否等于 'admin'。如果它相等,則使用 'echo' 函數(shù)顯示消息“not allowed!”并使用 'exit' 函數(shù)退出腳本。這是為了防止未經(jīng)授權(quán)訪(fǎng)問(wèn)網(wǎng)站的管理員頁(yè)面。
第7行使用 'urldecode' 函數(shù)解碼 'id' 參數(shù)的 URL 編碼值,將解碼后的數(shù)值賦值給GET[id]
第8行檢查 'id' 參數(shù)的解碼值是否等于 'admin'。如果它相等,則使用 'echo' 函數(shù)顯示消息“Access granted!”和一個(gè)密鑰。
代碼以 PHP 結(jié)束標(biāo)記結(jié)束。
咱們的目的就是求出這個(gè)密鑰了
函數(shù)urldecode urldecode() 是一個(gè) PHP 函數(shù),用于解碼 URL 編碼字符串。在 URL 中,一些字符是有特殊含義的,例如空格、問(wèn)號(hào)、等號(hào)等。如果需要在 URL 中使用這些字符,就需要對(duì)其進(jìn)行編碼,將其轉(zhuǎn)換成特定的編碼格式。例如空格會(huì)被編碼成 %20。urldecode() 函數(shù)可以將這些編碼格式的字符解碼回原始字符,以便使用或顯示。
在上面的 PHP 代碼片段中,urldecode() 函數(shù)用于解碼傳遞的 'id' 參數(shù)的 URL 編碼值,以便后續(xù)判斷 'id' 參數(shù)的值是否等于 'admin'。
所以直接輸入是不行的。http://61.147.171.105:51671/?id=admin 我們需要將admin進(jìn)行轉(zhuǎn)換,也就是進(jìn)行url編碼??梢越柚鷅urpsuit對(duì)admin進(jìn)行url編碼
瀏覽器解碼一次,代碼中解碼一次,所以一共是解碼兩次,那么對(duì)應(yīng)的就需要編碼兩次
因?yàn)闉g覽器本身會(huì)進(jìn)行因此url解碼,這里相當(dāng)于進(jìn)行兩次url解碼,所以我們要對(duì)admin進(jìn)行兩次編碼,那么最后得到的應(yīng)該是
http://61.147.171.105:51671/?id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65
相關(guān)知識(shí)點(diǎn)1:php代碼和url編碼
后綴名為.phps的文件:phps即php source,phps文件就是php的源代碼文件,通常用于提供給用戶(hù)查看php代碼,因?yàn)橛脩?hù)無(wú)法通過(guò)web瀏覽器直接查看到php文件的內(nèi)容,所以需要用phps文件代替
柚子快報(bào)邀請(qǐng)碼778899分享:ctf 02-攻防世界PHP2
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。