• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
علت بایپس شدن چیست ؟
#1
سلام دوستان سوالی در حین کار با sql injection پیش اومده و نمیتونم تجزیه تحلیل کنم
از اونجایی که میدونین وقتی علامت ' بعد id=1 قرار میدیم ارور میگیره مثلا :
localhost/master/Less-1/?id=1'
خطای مربوطه به این شکله:

کد:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
حالا وقتی که --+ به آخر id=1' اضافه میکنیم صفحه بدون خطا بالا میاد و مقادیر خودشو از دیتابیس برمیگردونه به این شکل :

[/code]http://localhost/master/Less-1/?id=1%27%20--+

اینم چیزایی که از دیتابیس آورد:

Your Login nameConfusedome
Your PasswordConfusedome
کد مربوط به mysql هم بزارم بهتر متوجه بشین .

کد:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

    if($row)
    {
      echo '<font color= "#0000ff">';    
      echo 'Your Login name:'. $row['username'];
      echo "<br>";
      echo 'Your Password:' .$row['password'];
      echo "</font>";
      }
    else
    {
    echo '<font color= "#900">';
    print_r(mysql_error());
    echo "</font>";  
    }
سوال من اینه که چرا (--+) باعث میشه خطا از بین بره ؟ mysql یا هر چیز دیگه Big Grin چطوری تجزیه تحلیل میکنه ؟
ببخشید اگه سوالم خیلی مبتدی بود
  پاسخ
تشکر شده توسط :
#2
-- کامنت میکنه توی sql
دقیقا مثل // توی پی اچ پی
  پاسخ
تشکر شده توسط : mehrabk
#3
ممنون آقا رضا
خوب پس با توجه به اینکه :
کد:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
داریم :
کد:
id='1' --+'
اینو چطور میخونه ؟
یعنی این 2 تا رشته چسبیده به هم است که شامل عدد 1 و space یا null ?
  پاسخ
تشکر شده توسط :
#4
والا سوالتون رو متوجه نشدم ولی بعد از -- هر چی قرار بگیره کامنت حساب میشه .
  پاسخ
تشکر شده توسط : mehrabk
#5
مشکلم حل شد ممنون درسته
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان