Tratamento de dados fornecidos pelo usuário: projetando sistemas com mais segurança - parte 1
Todas as informacoes e exemplos contidos nesse tutorial possuem somente propósitos educacionais. Não me responsabilizo pelo mau uso do mesmo.
Introdução
Olá senhores, aqui estou novamente escrevendo mais um artigo sobre segurança com o foco voltado principalmente para o desenvolvimento em PHP e, espero conscientizar-lhes que servidores "bem configurados" NÃO fazem por si só o seu sistema seguro.
Não mostro ou descrevo nenhuma falha ou técnica nova de hacking, esse texto é uma compilação de alguns assuntos que visa mostrar que brechas pequenas de segurança podem comprometer tanto o seu sistema quanto o restante do servidor que lhe prove serviços. Então se você se considera um especialista em segurança no desenvolvimento de sistemas
eu NÃO recomendo a leitura desse texto...
De uns tempos para cá comecei a notar que mais gente está programando e consequentemente mais gente está entrando no mercado de trabalho muito mais precossemente... Estão iniciando a sua viagem pelo maravilhoso mundo do desenvolvimento web como a inocente chapeuzinho vermelho levando a sua cestinha para sua vovozinha, no entanto não sabem eles - os desenvolvedores newbies ou chapeuzinhos vermelhos (Não existe aqui nenhum tipo
de analogia com a distro Red Hat =D) negligentes - que o usuário lobo malicioso está de
olho no seu sistema. Obs: Entende-se como desenvolvedor negligente aquele que tem como
objetivo somente fazer com que seu sistema esteja "rodando".
As técnicas abordam a inocência dos programadores e administradores que por sua vez não fazem as devidas validações ou restrições para o uso do PHP, ou seja, um bom exemplo seria um script php de upload mal configurado (ou mal implementado?) aliado a um sistema que não lhe nega permissão de escrita. Essa combinação se equivalhe a uma shell e, dois artigos muito interessantes para serem lidos a respeito disso podem ser encontrado em:
- Artigo desenvolvido por Wendel Guglielmetti - Upload de Assinatura + Forum = SHELL
http://www.frontthescene.com.br/artigos/UpSigF_Shell.txt
- Minha releitura do manual do PHP sobe o perigo no gerenciador de uploads do PHP
http://www.phpbrasil.com/articles/article.php/id/648
Nota: Ambos os assuntos serão discutidos no restante do texto.
Descrição do Ambiente
O artigo explora o seguinte ambiente:
* Um servidor Web rodando em um sistema GNU/Linux.
* Servidor com suporte a PHP.
* PHP configurado com permissão de upload de arquivos.
* Um servidor MySQL.
Logicamente a exploração de falhas no PHP só funcionará se o servidor estiver com suporte ao mesmo, assim como exploração MySQL só funcionará se o servidor estiver devidamente configurado e assim sucessivamente, mas gostaria de frisar que o artigo não explora necessariamente a interligação entre PHP e MySQL.
Introdução
Olá senhores, aqui estou novamente escrevendo mais um artigo sobre segurança com o foco voltado principalmente para o desenvolvimento em PHP e, espero conscientizar-lhes que servidores "bem configurados" NÃO fazem por si só o seu sistema seguro.
Não mostro ou descrevo nenhuma falha ou técnica nova de hacking, esse texto é uma compilação de alguns assuntos que visa mostrar que brechas pequenas de segurança podem comprometer tanto o seu sistema quanto o restante do servidor que lhe prove serviços. Então se você se considera um especialista em segurança no desenvolvimento de sistemas
eu NÃO recomendo a leitura desse texto...
De uns tempos para cá comecei a notar que mais gente está programando e consequentemente mais gente está entrando no mercado de trabalho muito mais precossemente... Estão iniciando a sua viagem pelo maravilhoso mundo do desenvolvimento web como a inocente chapeuzinho vermelho levando a sua cestinha para sua vovozinha, no entanto não sabem eles - os desenvolvedores newbies ou chapeuzinhos vermelhos (Não existe aqui nenhum tipo
de analogia com a distro Red Hat =D) negligentes - que o usuário lobo malicioso está de
olho no seu sistema. Obs: Entende-se como desenvolvedor negligente aquele que tem como
objetivo somente fazer com que seu sistema esteja "rodando".
As técnicas abordam a inocência dos programadores e administradores que por sua vez não fazem as devidas validações ou restrições para o uso do PHP, ou seja, um bom exemplo seria um script php de upload mal configurado (ou mal implementado?) aliado a um sistema que não lhe nega permissão de escrita. Essa combinação se equivalhe a uma shell e, dois artigos muito interessantes para serem lidos a respeito disso podem ser encontrado em:
- Artigo desenvolvido por Wendel Guglielmetti - Upload de Assinatura + Forum = SHELL
http://www.frontthescene.com.br/artigos/UpSigF_Shell.txt
- Minha releitura do manual do PHP sobe o perigo no gerenciador de uploads do PHP
http://www.phpbrasil.com/articles/article.php/id/648
Nota: Ambos os assuntos serão discutidos no restante do texto.
Descrição do Ambiente
O artigo explora o seguinte ambiente:
* Um servidor Web rodando em um sistema GNU/Linux.
* Servidor com suporte a PHP.
* PHP configurado com permissão de upload de arquivos.
* Um servidor MySQL.
Logicamente a exploração de falhas no PHP só funcionará se o servidor estiver com suporte ao mesmo, assim como exploração MySQL só funcionará se o servidor estiver devidamente configurado e assim sucessivamente, mas gostaria de frisar que o artigo não explora necessariamente a interligação entre PHP e MySQL.
são essas coisinhas que a gente esquece e que no final acaba ferrando o sistema...
eu li esse seu texto numa lista e me ajudou bastante depois disso. valeu
eu li esse seu texto numa lista e me ajudou bastante depois disso. valeu
24/04/2004 12:14am
(~20 anos atrás)
show de bola, sempre tem aquele cara q vai querer "testar" o seu sistema
14/04/2004 10:40pm
(~20 anos atrás)
Muito bom! Essas falhas são clássicas... o pessoal fica de olho nas perguntas dos fóruns para pegar os iniciantes.. ver o e-mail deles, empresa em que trabalha e quais foram os sistemas que a empresa do newba fez. Dai basta entrar no site e f* com tudo. huahauhauahuahauah O site da nasa foi hackeado através de um php deles... E tem mais, controle de login tb é importante! fazer validação do login em todos os phps do sistema!! Se não fizer validação o usuário acessa sem o login!! Sistemas de GED abertos para visitantes tb são muito vulneráveis.. mesmo sem permissão de upload. E o FTP? hahahahahahaha sem comentários....
13/04/2004 3:21pm
(~20 anos atrás)
Parabens pelo seu artigo. O artigo com certeza ajudará muita gente que está começando.
Vale!!!
Vale!!!
05/04/2004 5:53pm
(~20 anos atrás)
Acho que seria muito legal se vc colocasse exemplos da seguinte maneira:
Assim é o errado:
blablablablabalablablabla
Assim é o certo:
blablablablablablablablabla
Tipow eu vi q jah tem algo assim mais naum eh em todos os exemplos... ;)
Mas estah muito bom o artigo, alguma outra referencia em PT ?
David Fante
www.shz.com.br
Assim é o errado:
blablablablabalablablabla
Assim é o certo:
blablablablablablablablabla
Tipow eu vi q jah tem algo assim mais naum eh em todos os exemplos... ;)
Mas estah muito bom o artigo, alguma outra referencia em PT ?
David Fante
www.shz.com.br
01/04/2004 3:22pm
(~20 anos atrás)
Essa parte relacionada a configuração de servidor e exploração de falhas locais será apresentado na 2ª parte desse artigo (que eu espero publicar em breve)
[]`s
Ragen
[]`s
Ragen
27/03/2004 4:08am
(~20 anos atrás)
achei muito interessante, mas tu falo em configuração do servidor, como eu sei se o servidor tá bem configurado? eu fiz todos os testesinhos que tu apresento no scritp e tal, em relação a minha programação tá blz, mas e o servidor?
26/03/2004 3:11pm
(~20 anos atrás)
Um outro método que acho últil é quando passo variáveis por POST pra outro script executar:
$var = addslashes(trim($_POST['var']));
Assim removo o espaçamento e escapo os caracteres... depois é só usar:
$var = stripslashes($row['var']);
Muito bom o seu artigo e muito doido o gif hehehehe []s
$var = addslashes(trim($_POST['var']));
Assim removo o espaçamento e escapo os caracteres... depois é só usar:
$var = stripslashes($row['var']);
Muito bom o seu artigo e muito doido o gif hehehehe []s
24/03/2004 9:39am
(~20 anos atrás)
Opa :)
Elogios são muito bem vindos...
Mas é claro que é sempre ouvir opinioes... Enfim, eu também gostaria de ouvir criticas a respeito desse artigo
[]`s
Ragen
Elogios são muito bem vindos...
Mas é claro que é sempre ouvir opinioes... Enfim, eu também gostaria de ouvir criticas a respeito desse artigo
[]`s
Ragen
21/03/2004 10:55pm
(~20 anos atrás)
Estou aguardando pela parte 2 do arquivo..