0x01 命令执行
命令执行是通过各种绕过方式来达到执行命令的方式拿到flag,在CTF中有很多常见绕过的方式,比如过滤了什么 cat | read | ls | dir | head | tail 等读文件的敏感命令,但是这些的话还是有方法绕过的,比如说 cat 可以更改为 tac 那么就会倒读进行读取了。
0x02 审计代码
我们可以审计一下下面的代码来进行剖析一个绕过的方式,首先该代码进行判断了正则字母和数字,假设我们使用字符和数字的话,那么就会提示 "NO",如果有兴趣的小伙伴可以使用自己的思路来尝试一下进行绕过。
error_reporting(0);
if(isset($_GET['code'])){
$code=$_GET['code'];
if(strlen($code)>40){
die("This is too Long.");
}
if(preg_match("/[A-Za-z0-9]+/",$code)){
die("NO."