Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luislack

Site invadido por Sql Injection

Recommended Posts

Olá sou iniciante e queria pedir a ajuda tive o site invadido ..tem um formulario de login e senha para noticias e acredito que foi por ele que entraram segue o script, agradeço a ajuda ..

<?php
ob_start();
require("../banco_conecta.php");

// Se tiver logado, vai para o index
if ($_COOKIE["adm_login"] == '') {

$usuario = $_POST[usuario];
$senha = $_POST[senha];
$usuario_get = $_GET[usuario_get];

	if ($acao_login == 'login') {

		$resultadoAdm = mysql_query('SELECT * FROM admin WHERE usuario="'.$usuario.'" AND senha="'.$senha.'" AND ativo="s"');
		if(!$resultadoAdm){
			die("Erro na solicitação de query 1: " . mysql_error() . '<br>');
		}
		if(mysql_num_rows($resultadoAdm) == 0){
			echo ("ATENÇÃO: Login/Senha inválido ou você não tem permissão para acessar.");
		} elseif(mysql_num_rows($resultadoAdm) > 1){
			echo ("Erro! Cadastro duplicado. Fale com o administrador do site.");
		} else {
			if($row = mysql_fetch_array($resultadoAdm)){
				$Adm_Id = $row['Id'];
				$Adm_Nome = $row['nome'];
				$Adm_Usuario = $row['usuario'];
				$Adm_Senha = $row['senha'];
				$Adm_Acessos = $row['acessos'];
				$Adm_Data = $row['data'];
				$Adm_Ativo = $row['ativo'];
				$Adm_Restrito = $row['restrito'];
				setcookie ("adm_login", $Adm_Usuario, time()+60*60*24*7);
				setcookie ("adm_nome", $Adm_Nome, time()+60*60*24*7);
				setcookie ("adm_restrito", $Adm_Restrito, time()+60*60*24*7);
				//header ("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
				
				if ($_COOKIE["adm_restrito"] == '2') {
					if ($pagina_atual == '/adm_lista/banco_conecta.php' OR $pagina_atual == '/adm_lista/noticia/noticia_form.php' OR $pagina_atual == '/adm_lista/noticia/noticia_action.php' OR $pagina_atual == '/adm_lista/noticia/noticia_lista.php' OR $pagina_atual == '/adm_lista/login.php' OR $pagina_atual == '/adm_lista/msg.php') {
						header ("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
					} else {
						if ($pagina_atual == '/adm_lista/index.php') {
							header ("Location: noticia/noticia_lista.php");
						} else {
							header ("Location: bloqueio.php?pagina=".$pagina_atual."");
						}
					}
				} else {
					header ("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
				}
				
			}
		}
	}

?>

<html>
<head>
<title>LOGIN - ADMINISTRAÇÃO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="<?php echo ($_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']); ?>&acao_login=login">
  <table border="5" align="center" cellpadding="5" cellspacing="0" bordercolor="#FF0000">
    <tr> 
      <td bordercolor="#FFFFFF"><p align="center"><font size="2" face="Tahoma"><strong>Administração 
          FaspNet</strong></font></p>
        <p align="center"><font size="2" face="Tahoma"><font size="2" face="Tahoma"><font size="1">Usuário: 
          </font><br>
          <input name="usuario" type="text" id="usuario" value="<?php echo($usuario_get); ?>" size="20" maxlength="20">
          </font><font size="1"><br>
          Senha:</font><br>
          <input name="senha" type="password" id="senha" size="20" maxlength="20">
          </font></p>
        <p align="center"><font size="2" face="Tahoma">
          <input type="submit" name="Submit" value="   Entrar   ">
          </font></p></td>
    </tr>
  </table>
  <?php //echo($pagina_atual); ?>
</form>
</body>
</html>

<?php
exit;
} elseif ($acao_login == '') {
	if ($_COOKIE["adm_restrito"] == '2') {
		if ($pagina_atual == '/adm_lista/banco_conecta.php' OR $pagina_atual == '/adm_lista/noticia/noticia_form.php' OR $pagina_atual == '/adm_lista/noticia/noticia_action.php' OR $pagina_atual == '/adm_lista/noticia/noticia_lista.php' OR $pagina_atual == '/adm_lista/login.php' OR $pagina_atual == '/adm_lista/msg.php') {
		} else {
			if ($pagina_atual == '/adm_lista/index.php') {
				header ("Location: noticia/noticia_lista.php");
			} else {
				header ("Location: ../bloqueio.php?pagina=".$pagina_atual."");
			}
		}
	}
}

ob_end_flush();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Siga estes meus tutoriais:

http://rberaldo.com.br/seguranca-em-sistemas-de-login-protecao-contra-sql-injection/

http://rberaldo.com.br/pdo-mysql/

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua variavel  $resultadoAdm esta vulnerável a sqlinjection :

 

Como esta: mysql_query('SELECT * FROM admin WHERE usuario="'.$usuario.'" AND senha="'.$senha.'" AND ativo="s"');

Como atacaríamos: No campo do usuário colocaríamos a seguinte PoC:  ;select @@version;--

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.