سلام به همه پی وی لرنی های عزیز!
به دوره آموزش تست امنیت Security Testing خوش آمدید.
امروزه به صورت گسترده ای از اینترنت و دنیای وب استفاده می شود و جهان ما اکنون یک جهان آنلاین است که در آن بسیاری از مشاغل به سمت اینترنتی شدن پیش می روند. امروزه ما با پدیده های گسترده خرید و فروش در بستر اینترنت رو به رو هستیم؛ نمونه جهانی آن سایت آمازون است و نمونه ایرانی آن هم سایت دیجیکالا است.
خطرات و تهدید های زیادی در اینترنت وجود دارد؛ از هکر هایی که سعی می کنند از طریق روش های گوناگون از جمله فیشینگ اطلاعات کارت بانکی شما را سرقت کنند تا بد افزار هایی که قصد اختلال در سیستم کامپیوتری شما را دارند و البته ویروس های کامپیوتری و تروجان ها و غیره و غیره.
داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده قرار بگیرند و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند.
در جلسه قبل با موضوع هک شدن و هک کردن برنامه های وب آشنا شدیم؛ و تکنیک های OWASP ، برنامه Hands On، پروکسی وب و پیکربندی مجموعه Burp Suite را نیز شناختیم.
درا ین جلسه قرار است به بررسی Injection یا تزریق در تست امنیت بپردازیم.
تکنیک تزریق شامل تزریق SQL query یا یک دستور با استفاده از فیلدهای ورودی برنامه است.
یک تزریق موفق SQL می تواند داده های حساس را از پایگاه داده بخواند، اصلاح کند، همچنین می تواند داده ها را از یک پایگاه داده حذف کند. همچنین هکر را قادر می سازد که عملیات اجرایی را در پایگاه داده مانند خاموش کردن DBMS/dropping پایگاه داده ها انجام دهد.
اجازه دهید با کمک نمودار ساده، عوامل تهدید، وکتورهای حمله، ضعف امنیتی، تأثیر فنی و تأثیرات تجاری این نقص را بهتر درک کنیم.
برنامه از untrusted data یا فهم داده در ساخت vulnerable SQL cal استفاده می کند.
1 | String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'"; |
مرحله ۱ – مطابق شکل زیر به قسمت SQL Injection برنامه بروید.
مرحله ۲ – همانطور که در تمرین آورده شده است ، ما از String SQL Injection برای دور زدن احراز هویت استفاده می کنیم. استفاده از تزریق SQL برای ورود به عنوان رئیس (‘Neville’) بدون استفاده از رمز عبور صحیح. تأیید کنید که نمایه Neville قابل مشاهده است و همه عملکردها در دسترس است (از جمله Search و Create و Delete).
مرحله ۳ – ما SQL را تزریق می کنیم تا بتوانیم با ارسال پارامتر به عنوان ‘a’ = ‘a’ یا ۱ = ۱ رمز عبور را دور بزنیم.
مرحله ۴ – پس از بهره برداری، می توانیم به عنوان Neville که همانطور که در زیر نشان داده شده است، وارد شویم.
روش های زیادی برای جلوگیری از تزریق SQL وجود دارد. هنگامی که توسعه دهندگان کد را می نویسند، باید اطمینان حاصل کنند که به ترتیب متناسب با کارکتر های خاص رفتار می کنند. تکنیک های تقلب sheets/prevention وجود دارند که از OWASP جلوگیری می کنند قطعاً می توانند راهنمایی خوبی برای توسعه دهندگان باشند.
در ادامه به برخی از روش های جلوگیری از تزریق SQL اشاره کرده ایم.
در این جلسه به بررسی Injection یا تزریق در تست امنیت پرداختیم؛ از جمله تزریق هایی که می تواند امنیت پایگاه داده شما را تهدید کند، تزریق SQL است. یک تزریق موفق SQL می تواند داده های حساس را از پایگاه داده بخواند، اصلاح کند، همچنین می تواند داده ها را از یک پایگاه داده حذف کند. در این جلسه به بررسی تزریق SQL پرداخته و راه های مقابله با آن را نیز معرفی کردیم.
در جلسه آینده می خواهیم به آزمایش تأیید هویت شکسته در تست امنیت بپردازیم.
با پی وی لرنه مراه باشید.