ctf.show 萌新模塊 web2關,此關卡使用intval()函式強制將引數轉換成數值型,可以使用字符繞過,配合特殊符號控制SQL的查詢結果,從而獲取flag,這一關過濾了or,我們可以使用加號,減號,乘號,除號,或,左移等方式繞過

頁面中給出了原始碼,并提示我們 id=1000時,即可獲取flag

這里有兩個關鍵點,首先是intval()函式的轉換,我們可以利用intval函式轉換字串時的特性,來繞過校驗,輸入一下payload,即可獲取flag
?id=2*500

intval()函式轉換整數型別使,會原樣轉換;而轉化字串型別時( get請求獲取的引數都是字串型別)會從第一個字符開始轉換,直到遇到不是數字的字符才會停止轉換
利用這一特性,我們使用星號(*)來擾亂intval函式的轉換,2*500會被轉換成2,從而使if判斷條件中的 intval($id) > 999 不成立,從而執行else里的SQL陳述句
在SQL陳述句中,我們的 2*500 會進行算術運算,結果是 1000,從而使SQL查詢 id=1000的資訊,從而獲取flag
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298882.html
標籤:其他
上一篇:2021年安全類公眾號合集
下一篇:內網基礎-內網初探與資訊收集
