色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php ctf題解

衛若男1年前9瀏覽0評論
PHP CTF題解 PHP CTF題是一個很好的鍛煉PHP編程能力的途徑。本文將結合幾個題目,以舉例的方式說明一下如何解PHP CTF題。 題目一:這題的意思是,如果你傳入了一個叫做password的參數,就會和正確答案進行比較,如果相等就輸出Correct!, 如果不相等就輸出Wrong password!。 如果沒有傳入password參數,則輸出請輸密碼,內容比較簡單直白,我們重點分析一下這里的漏洞。 思路分析: 這里面的漏洞在于,他判斷密碼是否正確的方法使用的是 == 相等判斷法,這個方法的漏洞在于,當 password 參數為空時,他也會和正確答案比較,此時,由于算法錯誤,輸出結果比較可怕。我們可以使用 OR 運算符對此漏洞進行利用。 解題方法: 通過分析,此題目的漏洞在于 == 運算符不區分變量類型,而我們可以使用 OR 運算符,來模擬“存在或者正確”,此時,我們可以使用 payload,因為他不會區分類型,如下: ?password=123456’ or 1=1 /* 這就成功地繞過了原程序的輸入限制,以及邏輯判斷漏洞,直接返回了正確結果,這就是我們需要的flag。因為他可以在不知道密碼的情況下直接通過,所以也稱為SQL注入漏洞。最后的代碼實現如下:
password’ OR ‘1’=1;
題目二:Invalid characters detected'); } else { if (($username == $password)) { echo ‘Success!’; } else { echo ‘Access Denied!’; } } } else { die(‘

Please enter username and password

’); } } else { die(‘

Invalid method

’); } ?>這道題目是一道稍微有點難度的PHP CTF題,我們可以通過幾個考點來解決此題目。像上題一樣,我們可以直接根據代碼來進行細節解析。 思路分析: 這里面的漏洞在于,他使用preg_math方法來進行字符串過濾,如果檢測到一定的字符,他就直接退出,不會再進行下對比,此時我們可以利用這點,注入掉字符串中的特殊字符,然后執行目標操作。 解題方法:
此時,我們就可以成功繞過字符串匹配的檢查,輸出正確結果,拿到了flag,最后的代碼實現如下:
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
username=test*\/||\/\&password=aaa
結語: 通過上述兩道題目的分析,我們可以看到,PHP CTF 題目中的題目往往是要求我們綜合使用方法來進行解決難題,通過前期的結合PHP學習以及PHP注入的學習,越來越多的人可以通過PHP CTF題目來鍛煉自己的解題水平,這也是當前PHP開發人員交流學習中一個非常好的途徑。
下一篇$a php