28/10/2009

Disco virtual

* Disco virtual DISPONÍVEL para visitantes. Para acessar use os seguintes dados:

http://www.escoladehackers.com.br/disco
Usuário: visitante@escoladehackers.com.br
Senha: zvisitante

Alunos matriculados verifiquem na sala de cada curso as novas senhas de acesso ao disco virtual.

* O Desafio 24 Horas de outubro já foi escolhido: NMap avançado. E você já pode votar no Desafio 24 Horas do mês de novembro. As opções são Street Hacker (o game), Metasploit ou Hackeando o Wordpress. Você já pode votar e escolhar o que prefere aprender no Desafio 24 Horas de novembro. O NMap avançado vai ser realizado no próximo final de semana (31/10 e 1/11).

* Atualização do Curso 3 (Nível 1) - Máquinas Virtuais
Estamos atualizando o curso 3 do nível 1 sobre máquinas virtuais. O objetivo é incluir conhecimento novo, como por exemplo a virtualização nativa do Windows 2008 e Seven, falar também da DOSBox para jogar games antigos e da QEMU que usamos para rodar o Damn Small Linux no ambiente Windows. Também queremos reduzir o tamanho do arquivo de vídeo que está com quase 400MMB, fugindo ao padrão da média de 30MB por curso gravado entre os gravados recentemente.

* Atualização do Curso 1 (Nível 1) - Iniciação a Escola de Hackers
Estamos atualizando o curso 1 do nível 1 sobre Iniciação a Escola de Hackers. O objetivo é transformar o manual de matrículas em vídeo, incluindo as sugestões mais recentes enviadas por estudantes e colaboradores.
Ler mais

24/10/2009

Denial of Service (DOS) Attack no Joomla

A negação de serviço (DoS) é um ataque baseado na tentativa de negar o uso de um servidor ou outro recurso para usuários autorizados. Este é um tipo de ataque direcionado ao servidor de hospedagem, logo, se você hospeda os seus projetos em um bom  HOST, dificilmente sofrerá este tipo de invasão. Entretanto, se você gosta de HOST  barato ou de grátis, ou ainda, montou um HOST na sua garagem sem o devido conhecimento é bom ficar ligado.
 
A forma mais comum deste ataque é sobrecarregar o servidor ou roteador com um número elevado de pedidos, o que irá impedir que o mesmo responda a contento. Outra forma comum do ataque (Dos) é tentar resetar o servidor ou roteador de forma automática, ou seja, uma vez que o processo esteja completo, novo reinício da máquina é solicitado, impedindo o funcionamento e tornando indisponíveis todos os recursos durante o processo.
 
Para evitar o rastreamento dos hackers e também para atingir uma massa crítica de falsos pedidos, o ataque (Dos) muitas vezes é lançado com um vírus ou verme que se alojam em inocentes computadores e a partir deles (hospedeiros), efetuam o ataque. Isto é conhecido como um ataque de negação de serviço distribuído. Em uma determinada hora e data, o código é executado e simultaneamente começa a atacar o alvo.

A maioria dos ataques (Dos) devem ser desviadas ao nível de hardware, por isso, se você estiver executando o servidor do host, certifique-se de ter um bom firewal no lugar para que o mesmo identifique automaticamente o fluxo de tráfego, diferenciando o tráfego normal do anormal. Isto irá impedir o tráfego de dados inválidos passando pela rede.   

O OpenBSD Packet Filter é um  programa chamado "pf" que  suporta um recurso chamado "synproxy" que se coloca entre um servidor de internet e de tráfego. Desempenha o mesmo papel que um firewall no bloqueio tráfego falso. Você pode encontrar mais informações sobre a "pf" em  www.openbsd.org /faq/pf

Até o próximo artigo

Artigo traduzido e adaptado por Júlio Coutinho. O original, está publicado no capítulo 14 do livro Professional Joomla - Programador para Programador, de Dan Rahmel.
Ler mais

SQL INJECTION NO JOOMLA


Qualquer SGBD (Sistema Gerenciador de Bancos de Dados Relacional) entende apenas uma linguagem: SQL (Structured Query Language) ou linguagem de consulta estruturada. CREATE, DELETE, UPDATE e SELECT são apenas alguns dos comandos mais utilizados nesta linguagem, mas não está no escopo do nosso artigo, ensinar SQL e sim apresentar-lhe o SQL INJECTION.
uma das mais formas mais comuns e efetivas de ataque na internet é o SQL Injection. No SQL Injection, um hacker tenta enviar códigos SQL via consultas SQL não autorizadas e filtradas. O código SQL do hacker pode não ter nenhum retorno em termos de informações de segurança ou simplesmente executar um processo de destruição absoluta.
Existem precauções básicas que você deve tomar, para proteger os dados que serão recebidos através de formulários, principalmente se foi você quem o desenvolveu. A regra básica é tratar e validar os dados que serão recebidos e se assegurar que o seu código nunca irá recber os dados de uma forma bruta, ou seja, sem o devido tratamento.

Você pode tratar os dados de várias formas, desde limite de caracteres aceitos com maxlenght e size até scripts em javascript, para fazer a validação a nível cliente e scripts PHP, para validação a nível provedor.

Todos os dados enviados, devem ser processados e validados antes de serem utilizados pela aplicação.

Campos de texto em formulário sem filtragem

por exemplo, um formulário HTML podem aceitar um campo para um nome. Enquanto um usuário normal iria simplesmente digitar o seu nome no campo de texto do formulário, o hacker injeta código SQL para tentar executar uma consulta não autorizada ao banco de dados. Se no código do script PHP que vai receber os dados do formulário você setou a variável $name do tipo Get ou Post nome, que é o campo do formulário, a consulta normal ao banco de dados seria algo isto: $sql="Select * FROM jos_users WHERE name =' " . $name. " ';";

o hacker então digitaria algo parecido com o que segue: dummytext ' OR ' a ' = ' a

o código SQL gerador a partir desta injeção seria algo parecido com isto: select * FROM jos_users WHERE name = 'dummytext' OR ' a ' = ' a ' ;

quando a consulta enviada pelo hacker é executada, o teste ' a ' = ' a ' retornaria um valor real para cada linha e a consulta apresentaria a lista de todos os usuários existentes na tabela jos_users! O mais assustador é que qualquer código SQL válido, ou seja, sem erro de sintaxe, pode ser injetado, como mostrado no código a seguir: dummytext ' ; DROP table jos_users; SELECT * FROM jos_poll where title = '

o código acima iria destruir completamente a tabela de usuários do Joomla. Uma rotina simples de tratamento e validação do campo de texto do formulário, permitiria eliminar qualquer perigo de um ataque deste tipo.

 

Manuseando campos de texto em Joomla e PHP

Joomla inclui rotinas para gerar caracteres de escape para quaisquer caracteres (string) que não podem ser armazenados adequadamente dentro de um banco de dados. Por exemplo, a plica ( ' ) não pode ser armazenada na declaração SQL padrão de inserção sem modificação. Portanto, uma sequência de caracteres de escape com barra invertida ( \ ) permite a inclusão de caracteres especiais no MySql. Assim, uma barra invertida seguida pela citação ( \ " ) seria o único meio de armazenar os dados no campo do banco de dados. A seqüência de caracteres de escape fornecidos pelo próprio sistema invalida o ataque via injection, porque os caracteres digitados pelo hacker não serão entendidos pelo sistema como um comando SQL, será apenas um caracter literal comum a ser armazenado no banco de dados.

O provável resultado dessa consulta seria o retorno de um erro, uma vez que não existem registros correspondentes a esse valor seria encontrado.Para o código PHP, você pode usar um banco de dados específicos de cada método para gerar uma string que cria códigos para escapar de caracteres especiais. Para o MySQL, PHP inclui a função mysql_real_escape_string ()

O uso da função fica parecido com isto: $name = mysql_real_escape_string($name);

joomla fornece um método getEscaped () que irá retornar a string independentemente de sequência de escape de caracteres. Embora Joomla atualmente só suporta MySQL (previsto suportar ORACLE a partir da versão 6), você pode obter com o objeto JDatabase, a string que escapou e seria algo parecido com isto:

$db =& Jfactory::getDBO();

$name = $db->getEscaped($name) ;

Voltando aos ataques, no primeiro exemplo de ataque via SQL Injection, com os caratceres de escape, teríamos a seguinte seqüência inofensiva:

dummytext \ ' or \'a \ ' = \' a

O segundo exemplo ficaria assim:

dummytext\' ; Drop Table jos_users; select * from jos_polls where title = \ '

Existe uma diretiva do PHP conhecida como "magic quotes", que irá adicionar automaticamente barras para todos os campos recebidos de fonte externa (como um navegador da web). Na versão 6 do PHP, esta diretiva foi eliminada.

Portanto, é melhor ficar atento(a) aos códigos, principalmente de extensões de terceiros, para que seja executado de forma segura e caso esteja hospedando o Joomla em servidores com PHP 4.x (a maioria dos baratinhos ainda utilizada esta versão antiga do PHP) verifique a magiq quotes. ELA DEVE ESTAR LIGADA, ou seja, magiq_quotes = ON

Tipos não esperados

outra forma de ataque via SQL Injection pode ocorrer quando valores não esperados, (string, float, e assim por diante) são digitados e passados diretamente para a consulta SQL. Por exemplo, um valor de id obtido a partir de uma consulta ao banco de dados executada diretamente em linha  de comando como esta: 

$sql = " select * from jos_users where id = " . $id .  "; " ;
   
o mesmo tipo de SQL Injection poderia ser utilizado com o id recuperado,  se não for tratado com os caracteres de escape:

1; Drop table jos_users;

portanto, quando você aceitar valores de uma consulta ou formulário de envio, certifique-se de escrevê-los através do php.  Por exemplo, para escrever o $id em um valor inteiro (Integer), você poderia utilizar o seguinte código PHP:

$id= intval($id);
   
digitando este código, qualquer tipo de Sql Injection, será automaticamente eliminado, ou irá gerar um erro quando o código encontrar os caracteres inválidos.
   
Se você usar os métodos JRequest:: getVar () ou JRequest:: get (), nativos do Joomla  para obter a sequência de dados enviados via formulário de consulta, você já está protegido. Estas funções fornecem um filtro seguro para todos os tipos de dados indefinidos ou não esperados. Entretanto, quaisquer dados obtidos fora dessas funções, devem ser tratados por você com caracteres de escape, sempre que possível. 

Ler mais

23/10/2009

Hacking no joomla!


Hacking Joomla Sites

 Pessoalmente eu gosto Joomla! sites com base porque é fácil de gerir e resolver as coisas, mesmo fazendo o SEO como sobre blogs wordpress e até mesmo criar seu projeto próprio site. Mas esses dias mais e mais Joomla! sites são hackeadas por hackers anônima na web mundial. As razões são facilmente referir aos webmasters inconsciente / proprietários do local a instalação de extensões ou digamos add-ons para o Joomla, resultando em um mais vulnerável de se explorar, os danos maciços e desfiguração de seu site, incluindo perda de perspectivas, as informações pessoais , e no aspecto financeiro.

Como esses eventos havia acontecido? Quando os proprietários do local apontou os dedos para seus anfitriões culpar para o servidor web inseguro, falhou a segurança, a falta de acompanhamento e assim por diante. Mas eles não sabem que, acrescentando algumas extensões sem verificar primeiro se a extensão que eles estão usando tem um bug ou vulneráveis à exploração, então, seria um dos principais motivos que o seu site está propenso a hacking. Pela minha experiência pessoal eu consiga obter os hashes de senha admin do Joomla vários sites baseados em um minuto de explorar a usar o Google como mecanismo de busca. Cracker usando as senhas MD5 hash MD5 criptografado são convertidos em ASCII letras legíveis. Felizmente, um monte de cracker baseado na web MD5 está disponível na net fazendo a velocidade do processo de cracking up.

É realmente um grande problema para o aspecto de segurança em seu site, se você não está ciente desses tipos de vulnerables de bugs e as extensões que você aplicou no seu site Joomla. É melhor aconselhados a administrar e atualizar as extensões usadas (se a atualização dessa extensão está disponível), então você deve atualizá-lo para abordar as questões de segurança conhecidas em seu site.
Ler mais

22/10/2009

O que é Joomla?

O que é Joomla?

Joomla! é um dos mais poderosos Sistemas de Gerenciamento de Conteúdo (CMS) Opensource do mundo.

Por que ele é bom?

O Joomla! foi o vencedor das edições de 2006 e 2007 do prêmio de Melhor Software Livre de Gerenciamento de Conteúdo.

Quem usa Joomla?

Joomla é usado no mundo inteiro por diferentes tipos de pessoas e empresas. É usado desde a confecção de um simples website pessoal até a um complexo portal de conteúdo. Segue uma lista de onde pode ser usado o Joomla!:

    * Sites ou portais empresariais
    * Comércio Online
    * Pequenas empresas
    * Organizações sem fundos lucrativos
    * ONG's
    * Aplicações Governamentais
    * Intranets e extranets corporativas
    * Escolas e Igrejas
    * Pessoais ou familiares
    * Comunidades
    * Revistas e Jornais
    * as possibilidades são infinitas

Um site Joomla é caro?

Houve uma época que grandes empresas dominavam o mercado de CMS, cobrando preços superiores a 20.000 reais. A realidade hoje é outra. Conseguimos desenvolver um site em CMS com preço de Site estático.

Que tecnologia é usada?

Nossa receita é uma receita vencedora no desenvolvimento de aplicações web: Linux + Apache + MySql. Com essa receita podemos desenvolver aplicações com orçamentos reduzidos.

Gerenciamento descentralizado

Uma pessoa necessita apenas de um Navegador de Internet para poder atualizar seu site. Você pode estar em um Cyber Café nos EUA ou com seu celular Iphone na praia e poderá facilmente atualizar seu site.
Ler mais
ATENÇÃO! Todos os links e arquivos que se encontram no site, estão hospedados na própria Internet, somente indicamos onde se encontra. Qualquer arquivo protegido por algum tipo de lei deve permanecer, no máximo, 24 horas em seu computador. Eles podem ser baixados apenas para teste, devendo o usuário apagá-lo ou comprá-lo após 24 horas. A Aquisição desses arquivos pela Internet é de única e exclusiva responsabilidade do usuário.
"Você tem o direito de permanencer calado.
Tudo o que você fizer usando o conhecimento deste blog 
poderá ser usado contra você no tribunal."