Огромен проблем sql injection

phpbot

Registered
Добър ден днеска си пробвах сайта за sql injection и открих при логин формата си :lol:

Пробвам със addslashes и htmlspecialchars ама не става.

Формата:
Код:
<?php

  
    if(isset($_SESSION['logged']))
    {
    $id = trim(strip_tags($_SESSION['userinfo']['id']));
    $user = trim(strip_tags($_SESSION['userinfo']['username']));
    $row[avatar] = trim(strip_tags($_SESSION['userinfo']['avatar']));
    $row[points] = trim(strip_tags($_SESSION['userinfo']['points']));
    echo "

	<ul id=\"usermenu\">
	<li><a href=\"#\">$user</a>
		<ul class=\"submenu\">
			<li><a href='".$user.".html'>Профил</a></li>
				<li><a href=\"logout.php\">Изход</a></li>
		</ul>
	</li>
</ul>


					
	
									<div style=\"margin-top:25px;  margin-right:20px;\" class=\"notify\">0</div>	
				
				
			
					
	
		</div>
	</div></div>
     ";
    echo "";
    }
   else {


    ?>

Код:
		  <?
    if($_POST['login']) {
    $user = htmlspecialchars($_POST['user']);
    $pass = md5($_POST['pass']);
    $rq = mysql_query("SELECT * FROM `users` WHERE username='$user' AND password='$pass'");
    $validateNum = mysql_num_rows($rq);
    if($validateNum == 1) {
    $row = mysql_fetch_assoc($rq);
    $_SESSION['userinfo']=$row;
    $_SESSION['logged']=true;
echo '
<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php">';
    }
    }
    }
    ob_end_flush();
    ?>



Предложете нещо каквото ида е :]
 
PHP:
if(isset($_POST['login'])) {
$user = addslashes(htmlspecialchars(trim($_POST['user']))); 
 $pass = md5(trim($_POST['pass'])); 
 if(preg_match("^([0-9a-z])+$", $user))
{
      $rq = mysql_query("SELECT * FROM `users` WHERE username='$user'     AND password='$pass'");
    $validateNum = mysql_num_rows($rq);
    if($validateNum == 1) {
    $row = mysql_fetch_assoc($rq);
    $_SESSION['userinfo']=$row;
    $_SESSION['logged']=true;
echo '
<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php">'; 
    }
}
}
 
fcvc_gaming кода ти не бачка братле ама това бачка
Код:
$user = addslashes(htmlspecialchars(trim($_POST['user'])));


Оправих се trim са много добро нещо значи и благодаря много и на xu6thuklx брато [/code]
 
trim - Премахва знаци в началото и края на стринга
htmlspecialchars - Преобразува специални знаци в HTML единици
addslashes - Връща стринг с обратно наклонени черти пред знаците, които трябва да бъдат екранирани за заявки към бази от данни и т.н.. Знаците са единични кавички ('), двойни кавички ("), обратно наклонена черта (\) и NULL байт.

Например:
PHP:
<?php
$string = "php'bot";
echo addslashes($str); //ще излезе -> php\'bot
?>

Като вместо да използваш htmlspecialchars, ползвай
- strip_tags - изтрива HTML и PHP таговете от стринга.
- htmlspecialchars - преобразува HTML единици само: &, ", ', < и >

http://web-tourist.net/forum/viewtopic.php?p=449882#449882

http://web-tourist.net/login/login/view.php?st=2418 - Средства за защита на входните данни
 

Back
Горе