Cross-Frame Scripting
O Cross-Frame Scripting (XFS) é um ataque client-side variante do ja famoso Cross-Site Scripting (XSS).
Em um ataque de XFS, o atacante explora um determinado cross-frame-scripting bug em um browser para acessar através dele dados
privados em um web-site secundário. O atacante induz o browser do usuário à navegar para a página que o atacante
controla; o atacante pode carregar uma página secundária em um frame HTML; executando um javascript o atacante pode
conseguir dados de websites carregados em um frame secundário.
Principais Fatores de Risco
Os modelos de segurança padrão em browsers permitem que javascripts de uma determinada página possa acessar o
conteúdo de outras páginas que sejam carregadas em diferentes janelas do browser ou frames – desde que as outras
páginas tenham sido carregadas a partir da mesma origem. Entretanto, um bug específico neste modelo de segurança existe
em browsers específicos, permitindo assim que um atacante acesse dados carregados a partir de páginas
carregadas de origens/domínios diferentes.
O browser mais conhecido por conter este tipo de bug é o IE (internet explorer), que permite vazamento de
keyboard events através de HTML framesets. Este bug pode permitir, por exemplo, que um atacante roube dados de login
que o usuário está digitando em um determinado site carregador a partir do Frame-set malicioso.
Exemplos: XFS Attack em um Internet Explorer
Para conseguirmos explorar o bug no IE que permite que os Keyboard Events sejam roubados a partir de um frameset,
um atacante deve criar uma página e hospedá-la em um servidor qualquer, em nosso exemplo ela estará hospedada em
badsite.com. Esta página será controlada pelo atacante, e deverá incluir por exemplo um frame mostrando uma
página de login do site goodsite.com.
O atacante pode esconder as bordas do frame e expandir o frame para cobrir a pagina toda, desta forma o usuário irá
realmente acreditar que está acessando goodsite.com. O atacante registra alguns javascripts no index de badsite.com que
irá obter todos os key events na página. Normalmente estes listeners serão notificados apenas pelos key
events da janela principal do site badsite.com – mas devido o bug existente no browser, este listener irá receber
todos os key events existentes no frame carregado com o login do goodsite.com.
Desta forma todas as teclas pressionadas no browser, dentro deste frame do goodsite.com, enquanto ele tenta logar-se,
poderá ser capturada e depois enviada para badsite.com
Nenhum comentário:
Postar um comentário