2013-07-27 36 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

非常感谢:) –