LOADING

加载过慢请开启缓存 浏览器默认开启

笔记

2022/10/2

命令执行

绕过技巧

主要还是用题来说吧,基本都是 ctfshow 的

1.查看文件的几种方式

tac | more | less | tail | sort | tac | cat | head | od | expand | nl | echo

echo:在 PHP 中,可以使用反引号 ``或者 shell_exec 函数来执行命令并将输出作为字符串返回,然后使用 echo 命令将字符串输出到浏览器或命令行终端。比如echo ‘ls’或者echo shell_exec(‘ls -l’)
more:将文件内容分页显示
less:和more类似,但更强大,支持向前和向后翻页、搜索等功能
head:显示文件的前几行
tail:显示文件的后几行
tac:与 cat 刚好相反从文件的最后一行向前列出内容
nl:输出文件内容并显示行号
sort:对文件内容进行排序,默认按照字母表顺序进行排序,可以使用 -n 参数按照数字大小排序
od:以八进制或十六进制形式显示文件内容
expand:将文件中的制表符转换为空格
例子:

#web30
<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }

}else{
    highlight_file(__FILE__);
}
?>

这题过滤了 system 需要用另外一种方式去让 eval 执行命令,我们可以用

readfile()

当 eval 命令执行的时候,system 被 ban 了,就可以用这个,例如 readfile(‘./../../../../flag’)