你真的會PHP嗎(ctf writeup)

#你真的會PHP嗎

-一進(jìn)頁面,就是have fun,沒什么實質(zhì)性的內(nèi)容,但有標(biāo)題可以知道這是一道與PHP審計有關(guān)的題目。

-查看網(wǎng)頁源代碼,檢查發(fā)現(xiàn)有一個hint,,暗示,應(yīng)該就是我們解題的入手點吧

訪問一下,果然hint里面有提示信息,讓我們來看一下

![](http://ctf5.shiyanbar.com/web/PHP/6c525af4059b4fe7d8c33a.txt)

-可以看出需要我們給出一個數(shù)字,需要滿足下面三個條件,,(這里有好多不認(rèn)識的,百度百度再百度,,,)

1.不為空,且不能是一個數(shù)值型數(shù)字,包括小數(shù)。(由is_numeric函數(shù)判斷)?

2.不能是一個回文數(shù)。(is_palindrome_number判斷)?

3.該數(shù)的反轉(zhuǎn)的整數(shù)值應(yīng)該和它本身的整數(shù)值相等。即:

intval($req["number"])=intval(strrev($req["number"]))

-第二個條件與第三個條件看起來不可能同時成立

-第一個條件可以用%00空字符繞過檢驗

以下有兩種方法

-1.利用intival 函數(shù)繞過

由上面知道是32位系統(tǒng),由其的取值范圍,我們使用-2147483648造成溢出,繞過

32位系統(tǒng)

-2.科學(xué)計數(shù)法構(gòu)造number=0e-0%00

-感覺很難啊,參看了很多大神寫的writeup,極其感謝白大神的友情幫助

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容