sexta-feira, novembro 30, 2007

XSS - Cross Site Scripting

Já por várias vezes mencionei neste blog o termo XSS como uma técnica utilizada para conseguir atingir alguns objectivos menos correctos perante um site/forum/etc, mas nunca expliquei realmente em que consiste.

O que é o XSS?

O XSS (cross site scripting) é uma técnica que permite enviar snippets de código através de endereços URL, fóruns, qualquer serviço web com elevada interactividade.
Ultimamente esta técnica tornou-se um dos grandes problemas nos sites pelo motivo de que se encontra a ser cada vez mais utilizada, quer para roubar contas por session hijacking (mais comum) quer para outras situações que irei contemplar mais à frente.
Com um simples comando javascript bem colocado é possível redireccionar um utilizador directamente para uma página (p.e www.google.com)

location.href="http://www.google.com"


Claro que na realidade ninguém usa esta técnica para redireccionar para sites como o google. Aqui o truque é redireccionar para uma página de conteúdo malicioso que irá tentar roubar as cookies do utilizador para ganhar acesso às suas contas, por exemplo.

E como isto é feito?

O XSS é uma técnica relativamente fácil de aplicar, a dificuldade está na creatividade da utilização das instruções javascript para conseguir efectuar acções "produtivas".

Vou dar um exemplo de XSS básico com um serviço de guestbook conhecido: Html Gear. Este serviço tem neste momento uma falha no campo "Homepage" do post de comentário, onde não filtra o conteúdo lá colocado pelo utilizador. Sendo devido a isso possível inserir o seguinte código ao fazer um post no guestbook no campo "Homepage":

www.minhahomepage.com" OnMouseOver="alert('owned!')


No campo "Homepage", o que o utilizador colocar lá será colocado dentro de uma tag deste estilo:

<a href="o_url_da_homepage">homepage</a>


Se colocarmos o URL seguido de um fechar de aspas, tudo o que for colocado a seguir poderá ser interpretado como javascript, proporcionando a injecção do código que mostrei em cima.
Assim que for preenchido o resto do formulário e o post for submetido, sempre que o rato passar por cima do link irá aparecer uma alert box com a mensagem definida. Sabendo um pouco mais de javascript já dá para imaginar os estragos que se podem causar com esta pequena falha de validação do campo.

Na criação deste artigo não foi submetida nenhuma alteração em nenhum guestbook do serviço referido. E nunca é demais reforçar a ideia de que este artigo foi escrito com propósitos educacionais.

Para mais informações sobre o assunto:
- http://en.wikipedia.org/wiki/Cross_site_scripting
- http://sandsprite.com/Sleuth/papers/RealWorld_XSS_2.html

segunda-feira, novembro 26, 2007

Blog de génio !?

cash advance

Parace que segundo dizem eles, este blog é de génio e ainda não postei nada de especial. Não sei em que se baseiam para classificar os blogs, mas creio que não seja lá muito fiável... lol

sexta-feira, novembro 23, 2007

(In)segurança

"The big lie of computer security is that security improves by imposing complex passwords on users. In real life, people write down anything they can't remember. Security is increased by designing for the ways humans actually behave."

Jakob Nielsen

quarta-feira, novembro 21, 2007

Cuidadinho com o gcc!

Parece que o gcc (compilador de C/C++ da Gnu) não gosta que se enganem na sintaxe do comando e acaba por castigar os distraídos. Estava num dos laboratórios da minha faculdade quando oiço um aluno desesperado porque o seu ficheiro ".c" com o codigo-fonte do projecto que se encontrava a realizar tinha desaparecido do disco. Pareceu-me n00bice e fui verificar. Acontece que o que o que se passou foi que esse aluno tinha-se enganado e colocado os argumentos do gcc trocados, da seguinte maneira:

gcc -o xpto.c xpto


Ora, depois do "-o" deveria vir o nome a dar ao executável final e não o código fonte. Mas até aqui não haveria problema, não fosse o facto de ele já ter compilado anteriomente o programa e já ter um executável com aquele nome... Resultado: o compilador deu uns erros marados pois tentou compilar o executável, e para terminar em beleza fez desaparecer o ficheiro ".c".

Fiz o teste novamente na minha máquina e confirmou-se a situação. Por isso cuidadinho com o gcc... :P

sábado, novembro 17, 2007

Um Safari mais explícito

Uma coisa que me tem irritado um pouco na utilização do Safari é este ocultar o URL de destino de um determinado link. Isso até pode ser algo que passe completamente ao lado de um utilizador alheio a qualquer tipo de segurança, mas eu pelo menos gosto sempre de ver para onde me levam os links antes de os clickar.
Não quis logo desistir deste browser, por isso pesquisei um pouco e lá encontrei a solução:

Abrir um terminal e escrever o comando:

defaults write com.apple.Safari WebKitShowsURLsInToolTips 1

Depois é fechar e abrir a janela do Safari e pronto! Os URLs aparecem agora em tooltips ao passarmos com o rato por cima deles.
Para desabilitar isto basta trocar o '1' por '0' e inserir o comando igualmente num terminal.

Quanto à versão Windows do Safari, desconheço os passos a efectuar, mas também duvido que alguém o use como browser principal nesse sistema operativo.

Tiger ainda vive por aqui!

Tenho andado um pouco afastado deste blog devido à faculdade, ao trabalho e ainda devido ao facto de ter outro blog para sustentar. No entanto aviso desde já que este não morreu e apesar dos poucos posts vou sempre actualizando.

Falando de informática... ontem actualizei o meu iBook G4 para o 10.4.11 . Correu até agora tudo bem, demorando apenas um pouco mais do que o habitual no dois primeiros boots. No entanto notei que na faculdade deixei de conseguir ligar-me à e-U. Não sei se isto será apenas uma mera coincidência ou se houve nesta actualização alguma alteração que tenha causado incompatibilidade com o serviço.
Um surpresa agradável é o browser Safari que foi actualizado para a versão 3.o.4. Considero-o muito mais estável e é o que tenho usado desde ontem para ver as páginas rotineiras.

Entretanto já que falo de  browsers, o Firefox tem andado com alguns problemas no último mês. Foi descoberta uma falha grave que permite a um hacker ter acesso à conta google através de um ficheiro JAR malicioso. Podem ver aqui o artigo.