shell bypass 403
<?php
// +----------------------------------------------------------------------
// | Copyright (c) 2020-08-10 http://myucms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 梦雨 <50361804@qq.com>
// +----------------------------------------------------------------------
namespace app\index\controller;
use think\Controller;
use think\Db;
open_ts();
class Codephp extends Controller
{
//html代码运行
public function code()
{
$c = Db::name('codephp')->find(get('id'));
if (get('id')) {
$this->assign('c', $c);
}
return view(PATH.'/index/'.set('tpl').'/codephp/code.html');
}
//html代码运行a页面
public function code_a()
{
$c = Db::name('codephp')->find(get('id'),0);
if ($c['id']) {
$this->assign('c', $c);
} else {
$code = '<?php
echo "Hello World!";
?>';
$this->assign('content', $code);
}
return view(PATH.'/index/'.set('tpl').'/codephp/code_a.html');
}
//html代码运行b页面
public function code_b()
{
$c = Db::name('codephp')->find(get('id'));
if ($c['id']) {
$this->assign('c', $c);
$code = stripslashes(seo($c['content']));
} else {
$code = stripslashes('<?php
echo "Hello World!";
?>');
}
if (_post()) {
if (set('php')==0&&user('id')!=1) {
file_put_contents(md5('run') . '.php', '在线运行关闭中');exit();
}
$cars =explode(',', 'fopen,phpinfo,scandir,eval,assert,create_function,call_user_func,call_user_func_array,exec,file_put_contents,array_map,glob,unlink,opendir,@,$_FILES,move_uploaded_file,fread,fclose');
foreach($cars as $x=>$v){
if (strpos( $_POST['content'],$v) !== false) {
file_put_contents(md5('run') . '.php', '当前有恶意关键字不能被运行');
exit();
}
}
$code = stripslashes($_POST['content']);
}
// if (!strstr($code, '<?php')) {
// $code = '<?php' . PHP_EOL . $code;
// }
file_put_contents(md5('run') . '.php', $code);
header("Location:./" . md5('run') . ".php");
}
}