<?php
include "flag.php";
highlight_file(__FILE__);
if(isset($_GET['HECTF'])) {
if (';' === preg_replace('/[^\W]+\((?R)?\)/', NULL, $_GET['HECTF'])) {
if (!preg_match('/pos|high|op|na|info|dec|hex|oct|pi/i', $_GET['HECTF'])) {
@eval($_GET['HECTF']);
}
else{
die("Invalid input!!");
}
}
else{
die("param format error!!");
}
}
-
绕过正则表达式限制:正则表达式
/[^\W]+\((?R)?\)/
用于匹配函数调用。在这个正则表达式中,\W
匹配非单词字符,其中包括字母、数字和下划线之外的字符。我们可以使用\W
之外的字符来构造函数调用语句。 -
绕过关键字限制:正则表达式
/pos|high|op|na|info|dec|hex|oct|pi/i
用于检查输入是否包含特定的关键字。我们需要避免在自定义代码中使用这些关键字以通过限制。因此,需要找到其他替代的操作或方法来达到相同的目的。