سلام به همه پی وی لرنی های عزیز!
به دوره آموزش تست امنیت Security Testing خوش آمدید.
امروزه به صورت گسترده ای از اینترنت و دنیای وب استفاده می شود و جهان ما اکنون یک جهان آنلاین است که در آن بسیاری از مشاغل به سمت اینترنتی شدن پیش می روند. امروزه ما با پدیده های گسترده خرید و فروش در بستر اینترنت رو به رو هستیم؛ نمونه جهانی آن سایت آمازون است و نمونه ایرانی آن هم سایت دیجیکالا است.
خطرات و تهدید های زیادی در اینترنت وجود دارد؛ از هکر هایی که سعی می کنند از طریق روش های گوناگون از جمله فیشینگ اطلاعات کارت بانکی شما را سرقت کنند تا بد افزار هایی که قصد اختلال در سیستم کامپیوتری شما را دارند و البته ویروس های کامپیوتری و تروجان ها و غیره و غیره.
داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده قرار بگیرند و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند.
در جلسه قبل به بررسی اسکریپت نویسی و تاثیر آن در تست امنیت پرداختیم؛ اسکریپت نویسی متقاطع (XSS) زمانی اتفاق می افتد که برنامه ای داده های غیرقابل اعتماد را می گیرد و بدون اعتبار آن را به کاربر (مرورگر) می فرستد.
در این جلسه می خواهیم تاثیر Direct Object References در تست امنیت را بررسی نماییم.
یک Direct Object References یا یک مرجع شیء مستقیم ممکن است هنگامی ایجاد شود که یک توسعه دهنده یک مرجع را به یک شیء اجرای داخلی، مانند فایل، دایرکتوری یا کلید پایگاه داده را بدون هیچ گونه مکانیسم اعتبارسنجی در معرض نمایش بگذارد. این امر به مهاجمان اجازه می دهد تا این گونه منابع را برای دسترسی به داده های غیر مجاز دستکاری کنند.
اجازه دهید با کمک نمودار ساده، عوامل تهدید، وکتورهای حمله، ضعف امنیتی، تأثیر فنی و تأثیرات تجاری این نقص را بهتر درک کنیم.
این مثال را در نظر بگیرید؛ یک برنامه در یک SQL call که به اطلاعات حساب دسترسی دارد، از داده های غیرقابل اطمینان استفاده می کند.
1 2 3 4 | String sqlquery = "SELECT * FROM useraccounts WHERE account = ?"; PreparedStatement st = connection.prepareStatement(sqlquery, ??); st.setString( 1, request.getParameter("acct")); ResultSet results = st.executeQuery( ); |
مهاجم پارامتر query را در مرورگر خود تغییر می دهد تا به Admin اشاره کند.
1 | http://webapp.com/app/accountInfo?acct=admin |
مرحله ۱ – به Webgoat وارد شوید و برای دسترسی به بخش نقص کنترل کمی اسکرول کنید. هدف این است که با حرکت به سمت مسیری که در آن قرار دارد ، tomcat-users.xml را بازیابی کنید. در ادامه تصویری از این سناریو آورده شده است.
مرحله ۲ – مسیر فایل در فیلد “the current directory is” نمایش داده می شود که یعنی C:\Users\userName$\.extract\webapps\WebGoat\lesson_plans\en همچنین ما می دانیم که فایل tomcat-users.xml در زیر C:\xampp\tomcat\conf نگه داشته می شود.
مرحله ۳ – باید تمام راه را از دایرکتوری اصلی عبور دهیم و از مسیر C: \ Drive حرکت کنیم. می توان همین کار را با رهگیری ترافیک با استفاده از Burp Suite نیز انجام داد.
مرحله ۴ – اگر تلاش ما موفقیت آمیز باشد tomcat-users.xml پیام “Congratulations. You have successfully completed this lesson” را ظاهر می کند.
توسعه دهندگان می توانند از resources/points زیر به عنوان راهنما برای جلوگیری از Direct Object References ناامن در مرحله توسعه استفاده کنند.
در این جلسه به بررسی تاثیر Direct Object References در تست امنیت پرداختیم؛ یک Direct Object References یا یک مرجع شیء مستقیم ممکن است هنگامی ایجاد شود که یک توسعه دهنده یک مرجع را به یک شیء اجرای داخلی، مانند فایل، دایرکتوری یا کلید پایگاه داده را بدون هیچ گونه مکانیسم اعتبارسنجی در معرض نمایش بگذارد.
در جلسه آینده به این مسئله می پردازیم که تنظیمات نادرست امنیتی چه تاثیری در تست امنیت دارد.
با پی وی لرن همراه باشید.