rce题目

  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!!");
    }
}

  1. 绕过正则表达式限制:正则表达式/[^\W]+\((?R)?\)/用于匹配函数调用。在这个正则表达式中,\W匹配非单词字符,其中包括字母、数字和下划线之外的字符。我们可以使用\W之外的字符来构造函数调用语句。

  2. 绕过关键字限制:正则表达式/pos|high|op|na|info|dec|hex|oct|pi/i用于检查输入是否包含特定的关键字。我们需要避免在自定义代码中使用这些关键字以通过限制。因此,需要找到其他替代的操作或方法来达到相同的目的。

rce题目_第1张图片

 rce题目_第2张图片

 rce题目_第3张图片

你可能感兴趣的:(网络安全)