جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'آموزش پیدا کردن باگ'.
1 نتیجه پیدا شد
-
سلام خدمت همه دوستان میخوام نحوه ایجاد باگsql و راه های پیدا کردن اون از روی کد رو بهتورت ساده ومبتدی بگم البته این سورا که گفته میشه خیلی سادس بقیه پرایویته نوعی از حملات که در آن اخلاگر با تزریق دستورات SQL به ورودی هایی که به پایگاه داده منتهی می شود، اطلاعات مورد نظر را از پایگاه داده استخراج کرده و اهداف خود را روی آن هدف اعمال می کند. این آسیب پذیری زمانی ایجاد می شود که ورودی های منتهی شده به پایگاه داده محدود نشده باشند، در نتیجه اخلالگر دستوراتی را علاوه بر دستورات و درخواست هایی که به سرور ارسال می شود، به پایگاه داده ارسال میکند و اطلاعات را از آن استخراج می کند. برای درک اینکه این آسیب پذیری در عمل چگونه اتفاق می افتد، آدرس فرضی زیر را در نظر بگیرید: www.site.com/page.php?id=5 در آدرس فرضی بالا قسمت page.php?id=5 یک Query را تشکیل می دهد که کد مربوط به آن بصورت زیر است: <?php$sql=”SELECT * FROM logs WHERE id=”.$ GET[“id”];$result=mysql query($sql);?> در کد بالا Query مورد نظر در متغیر sql قرار گرفته و متغیر sql از طریق تابع mysql_query اجرا می شود و در واقع نتیجه کلی در داخل متغیر result قرار می گیرد. مشکل این کد اینجاست که بدون ایجاد محدودیت، پارامتر id از طریق $_GET فراخوانی شده است. نکته: تابع mysql_query پرس جوهایی SQL را روی پایگاه داده MYSQL اجرا می کند. پس شکل اصلی آدرس بالا قبل از اجرای کوئری به شکل زیر است: www.site.com/ SELECT * FROM logs WHERE id=5 و زمانی که ما در قسمت url سایت عمل تزریق را انجام می دهیم به شکل زیر می باشد: www.site.com/SELECT * FROM logs WHERE id=5 union select null, concat(user,password) from mysql.user— حاصل این تزریق افشای اطلاعات کاربران پایگاه داده است. البته url تنها راه انجام این حمله نیست و این حمله می تواند از طریق ورودیهایی مثل فرم و یا کوکی نیز صورت گیرد. برای مثال: query = "SELECT * FROM users WHERE uname=’” . $_POST[‘Username ‘]. “’ AND password=’” . $_POST[‘Password’] . “’;” در این شبه* کد انتظار می*رود فقط هنگامی که نام* کاربری(Username) و رمزعبور(Password) به درستی وارد شوند عمل ورود به سایت انجام پذیرد، امابا یک ترفند ساده می*توان نام* کاربری را طوری وارد کرد که بدون کنترل شدن رمزعبور، عمل ورود به سایت انجام شود. کافی است به جای نام* کاربری و رمز عبور عبارت زیر را وارد کنیم: ' OR 1=1 -- در این صورت دستور SQL به صورت زیر اجرا خواهد شد: SELECT * FROM users WHERE uname=’’ OR 1=1 --AND password=’’; در ساختار SQL عبارات بعد از – اجرا نمی شوند و 1=1 یک عبارتهمیشه درست است، پس کاربر تائید می*شود. به این طریق بدون داشتن نام کاربری و رمزعبور و تنها با استفاده از تزریق کد SQL به پایگاه داده توانستیم وارد محیط کاربری سایت شویم.
- 7 پاسخ
-
- دیتابیس هکینگ
- باگ sql
- (و 8 مورد دیگر)