2013-07-27 38 views
0

如果我有的index.php傳遞HEX值

if ($_GET['x']==="\x01\x03\x03\x07") 
{ 
    echo 'OK'; 
} 

所以一些代碼,我怎麼能傳遞值x url中的index.php?X = ???獲得輸出'OK'。 謝謝!

+0

'的index.php? x = url',人們會想。 –

+0

@Fred你的意思是'index.php?url = x' – kennypu

+0

如果你使用'$ _GET ['url']',那麼'index.php?url = x' – Jonnny

回答

0

因此,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

+0

你編輯了你的問題:D –

+0

對不起:D,我的目標是與十六進制值「\ x01 \ x03 \ x03 \ x07」 :) –

+0

好的,我會幫你找到方法。但給時間:D –

0

要在URL中傳遞十六進制值,您需要在十六進制代碼之前使用字符「%」。例如,%20代表空格字符。 因此,你需要的網址是:

index.php/x=%01%03%03%07 

您可以參考HTML URL編碼here

P/S:我覺得你是在玩ctf.wargamevn.vn;))

+0

非常感謝:) –