如果我有的index.php傳遞HEX值
if ($_GET['x']==="\x01\x03\x03\x07")
{
echo 'OK';
}
所以一些代碼,我怎麼能傳遞值x url中的index.php?X = ???獲得輸出'OK'。 謝謝!
如果我有的index.php傳遞HEX值
if ($_GET['x']==="\x01\x03\x03\x07")
{
echo 'OK';
}
所以一些代碼,我怎麼能傳遞值x url中的index.php?X = ???獲得輸出'OK'。 謝謝!
因此,url必須是這樣的:
... index.php?x=\x01\x03\x03\x07
和你的$ _GET必須是這樣的:
$_GET['x'] = "\\x01\\x03\\x03\\x07";
它會返回 「OK」
比較「\ X01 \ x03 \ x03 \ x07'(十六進制值)與您在url中發送的變量x,首先必須將'\x01\x03\x03\x07'
更改爲'\\x01\\x03\\x03\\x07'
。爲什麼?因爲如果你不加倍'\',你將無法比較這些。
所以,你必須把十六進制在這樣的變量:
$hex = "\x01\x03\x03\x07";
,你會比較「X」與編輯$十六進制(該值是「\\x01\\x03\\x03\\x07
」)。 要編輯/固定$ hex,我們必須使用函數str_ireplace()。
這裏的例子:
$hex = "\x01\x03\x03\x07";
$hex_able_to_compare = "\\x01\\x03\\x03\\x07";
$fixed = str_ireplace($hex,$hex_able_to_compare,$hex);
if ($_GET['x'] == $fixed){
echo "OK!";
}
else {
echo "Not OK!";
}
所以,你仍然可以使用的地方十六進制比較你的十六進制$hex
變量。
但問題是:如果十六進制值是動態的呢?我們應該使$hex_able_to_compare
的值也是動態的。 :D
你編輯了你的問題:D –
對不起:D,我的目標是與十六進制值「\ x01 \ x03 \ x03 \ x07」 :) –
好的,我會幫你找到方法。但給時間:D –
要在URL中傳遞十六進制值,您需要在十六進制代碼之前使用字符「%」。例如,%20代表空格字符。 因此,你需要的網址是:
index.php/x=%01%03%03%07
您可以參考HTML URL編碼here
P/S:我覺得你是在玩ctf.wargamevn.vn;))
非常感謝:) –
'的index.php? x = url',人們會想。 –
@Fred你的意思是'index.php?url = x' – kennypu
如果你使用'$ _GET ['url']',那麼'index.php?url = x' – Jonnny