
Segurança Com Querystring
Started By gonacts, 14/11/2006, 10:52
7 replies to this topic
#1
Posted 14/11/2006, 10:52
bom dia pessoal...
gostaria de saber até q ponto uma falha na programação das query strings podem "afetar" a integridade do site...
exemplo:
acessei um site q qnd eu passo um link na url ele inclui o site dentro do dele..
www.site.com.br/index.php?pagina=http://www.site2.com.br
gostaria de saber até q ponto alguma pessoa pode fazer um script "malicioso" que possa fazer a comunicação entre os 2 servidores de hospedagem...
e tb quais outras falhas de segurança q podem ser encontradas no php...
[]'s
gostaria de saber até q ponto uma falha na programação das query strings podem "afetar" a integridade do site...
exemplo:
acessei um site q qnd eu passo um link na url ele inclui o site dentro do dele..
www.site.com.br/index.php?pagina=http://www.site2.com.br
gostaria de saber até q ponto alguma pessoa pode fazer um script "malicioso" que possa fazer a comunicação entre os 2 servidores de hospedagem...
e tb quais outras falhas de segurança q podem ser encontradas no php...
[]'s
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"
#2
Posted 14/11/2006, 15:18
Existe uma Defacing Tool escrita pelo r3v3ng4ns que é usada por vários grupos de defacers. Ela é usada justamente nessa falha de segurança que você citou. (PHP Injection)
A partir dela você pode criar/modificar/deletar diretórios, executar comandos shell (se o servidor permitir), definir permissão de arquivos (chmod), etc.
A partir dela você pode criar/modificar/deletar diretórios, executar comandos shell (se o servidor permitir), definir permissão de arquivos (chmod), etc.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#3
Posted 14/11/2006, 17:01
Na verdade são várias que rolam na internet.
Se você deixar o cara incluir arquivos dentro do seu site fica fácil.
Deleta, muda, copia, enfim....faz o que quiser....
Sempre pego o relatório das tentativas que cada um faz em meus sites...
Não vou colocar o link da última aqui senão vira bagunça....
Vai ter um monte de site sendo invadido...
Mas na maioria são arquivos TXT que contém os códigos em php que quando incluídos na página dá pra fazer um inferno lá dentro. Tem um monte. Virou praga isso...
Tem alguns tópicos interessantes sobre isso aqui no fórum....
t+
Otavio Boari
Se você deixar o cara incluir arquivos dentro do seu site fica fácil.
Deleta, muda, copia, enfim....faz o que quiser....
Sempre pego o relatório das tentativas que cada um faz em meus sites...
Não vou colocar o link da última aqui senão vira bagunça....

Vai ter um monte de site sendo invadido...

Mas na maioria são arquivos TXT que contém os códigos em php que quando incluídos na página dá pra fazer um inferno lá dentro. Tem um monte. Virou praga isso...
Tem alguns tópicos interessantes sobre isso aqui no fórum....
t+

Otavio Boari
#4
Posted 14/11/2006, 19:11
Eu fiz uma função tentando burlar esse tipo de invasão, e que não faça termos de criar dezenas de IFs.
Abraços !
Espero que ajude, é bem simples a função.
<?PHP // -------------------------------------------------------------------------------------------------- // Função QSS(Query String Segura) // -------------------------------------------------------------------------------------------------- // ::::::::::::::::::::::::::::::::::: DESENVOLVIDA POR ::::::::::::::::::::::::::::::::::::::::::: // Leonardo C. Pereira (Dante) [ www.leonardopereira.pt.to ] [ dantetekanem@hotmail.com ] // -------------------------------------------------------------------------------------------------- // COMO FUNCIONA //////////////////////////////////////////////////////////////////////////////////// // Inclui outras páginas dentro do seu website, obedecendo as seguintes regras. // Que sejam das extensões permitidas por você, e que estejam no mesmo servidor que o sistema. ///////////////////////////////////////////////////////////////////////////////////////////////////// // -------------------------------------------------------------------------------------------------- // MODO DE USAR ///////////////////////////////////////////////////////////////////////////////////// // QSS('pagina'); // Inclui os arquivos que vierem dentro da váriavel requisitada 'pagina'. // Se for por exemplo o link(www.meusite.com/index.php?pagina=teste.php) // Será pego o conteudo teste.php ///////////////////////////////////////////////////////////////////////////////////////////////////// // -------------------------------------------------------------------------------------------------- // AVISOS /////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// // Necessário PHP 4.x.x ou superior para funcionar. // Caso for usar está função em seu website, por favor, deixe os devidos créditos ao autor(eu). // -------------------------------------------------------------------------------------------------- function QSS($caminho){ $extP = array('php','html','htm','js','txt'); // As extensões permitidas para visualização $qs = $_REQUEST[$caminho]; $p1 = explode("?",$qs); $ar = explode(".",$p1[0]); if(isset($qs)){ if(in_array($ar[sizeof($ar)-1],$extP) AND !eregi("http://|www.|ftp://",$p1[0]) AND file_exists($p1[0])){ include($qs); }else{ // MENSAGEM DE ERRO DO SISTEMA PARA PÁGINAS INVÁLIDAS OU INEXISTENTES /////////////////////////////// print('Erro, o caminho que você está tentando visualizar é dito como inseguro e perigoso para o nosso sistema ou o arquivo é inexistente, por favor, tente outro caminho.<br/> Arquivo tentando ser visualizado: <b>'.$qs.'</b><br/>O formato <b>'.$ar[sizeof($ar)-1].'</b>'); if(in_array($ar[sizeof($ar)-1],$extP)){ print(' é permitido pelo nosso sistema.<br/>'); }else{ foreach($extP as $array){$ext[]='<b>.'.$array.'</b>';} print(' não é permitido pelo nosso sistema;<br/>Formatos permitidos: ('.implode(", ",$ext).');<br/>'); } if(file_exists($qs)){ print('O arquivo <b>'.$qs.'</b> existe no nosso servidor.'); }else{ print('O arquivo <b>'.$qs.'</b> não existe no nosso servidor.'); } } ///////////////////////////////////////////////////////////////////////////////////////////////////// } } // TESTANDO A FUNÇÃO NO SISTEMA, CHAMANDO ELA PELA QUERY STRING 'p' ///////////////////////////////// QSS('p'); ///////////////////////////////////////////////////////////////////////////////////////////////////// ?>
Abraços !
Espero que ajude, é bem simples a função.
#5
Posted 16/11/2006, 08:50
Aqui eu uso assim:
Daí caso alguém tente incluir uma URL ele abre o arquivo ilegal.php
Dentro desse arquivo eu coloquei a função de pegar todos os dados do invasor e mandar pro meu e-mail.
Coloco isso em todos os sites que faço e sempre recebo vários dados por dia...rs
t+
<? if ($_GET[secao]=="") { $_GET[secao]="principal"; } $verificacao = eregi("http|ftp|https|www|wget", $_GET[secao]); if ($verificacao) $_GET[secao]="ilegal"; include("$_GET[secao].php"); ?>
Daí caso alguém tente incluir uma URL ele abre o arquivo ilegal.php
Dentro desse arquivo eu coloquei a função de pegar todos os dados do invasor e mandar pro meu e-mail.
Coloco isso em todos os sites que faço e sempre recebo vários dados por dia...rs
t+
#6
Posted 17/11/2006, 08:07
veja bem...
você pode até pegar o conteudo de outro site....mas não fazer um include....e sim ler o arquivo e repassar ao browser.....e claro...verificar a extensçao do que está sendo lido... pra você não repassar programas executáveis.... e outros!
você pode até pegar o conteudo de outro site....mas não fazer um include....e sim ler o arquivo e repassar ao browser.....e claro...verificar a extensçao do que está sendo lido... pra você não repassar programas executáveis.... e outros!
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
#7
Posted 12/01/2007, 16:46
Boa tarde, bem eu usei query em um site meu em menos de 2 semanas ele fizeram fdefacer nele vi no webtutorias que colocando apenas um . na frente do get resolvia o problema bom ams acho que não resolveu pois essa semana detoram ele de novo o codigo que uso é esse
passei o SSS no meu site e ele tb achou uma vunerabilidade de XSS , mas até agora não sei como corrigir. se alguem souber de algo.
abraços
<? $paginas = array( "principal" => "principal.php", ); $var = "principal"; $paginas = "$_GET[paginas].php"; if(isset($_GET['paginas'])) { include ("./".$_GET['paginas'].".php"); } else { include ("./principal.php"); } ?>
passei o SSS no meu site e ele tb achou uma vunerabilidade de XSS , mas até agora não sei como corrigir. se alguem souber de algo.
abraços
#8
Posted 12/01/2007, 17:15
Eu, não entedi nada do que vc escreveu, so entedo que de alguma forma tão detornado seu site ...
É realmente esse seu código não bloqueia nada
Tipo tenta trocar tbm a exten'são pra dificilcutar se não não adicante é so acessar via pasta e pronto ...
É realmente esse seu código não bloqueia nada

<?php $paginas = array( "principal" => "principal.phtmls", "games" => "jogos.phtmls", "contato" => "contato.phtmls" ); if (isset($paginas[$_GET["paginas"]])) { include ("./" . $paginas[$_GET["paginas"]]); } else { include ("./principal.phtmls"); } ?>
Tipo tenta trocar tbm a exten'são pra dificilcutar se não não adicante é so acessar via pasta e pronto ...
Boa tarde, bem eu usei query em um site meu em menos de 2 semanas ele fizeram fdefacer nele vi no webtutorias que colocando apenas um . na frente do get resolvia o problema bom ams acho que não resolveu pois essa semana detoram ele de novo o codigo que uso é esse
<? $paginas = array( "principal" => "principal.php", ); $var = "principal"; $paginas = "$_GET[paginas].php"; if(isset($_GET['paginas'])) { include ("./".$_GET['paginas'].".php"); } else { include ("./principal.php"); } ?>
passei o SSS no meu site e ele tb achou uma vunerabilidade de XSS , mas até agora não sei como corrigir. se alguem souber de algo.
abraços
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)