如果我有的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