در این بخش از مجموعه آشنایی با متدولوژی Burp Suite به بخش دوم از این متدولوژی که Bypass Client Side JavaScript Validation می باشد، می پردازیم.
معمولاً مشاهده میشود که برخی از برنامههای تحت وب، اعتبارسنجی ورودی سفارشی، سمت کلاینت انجام میشود. دور زدن این نوع کنترلهای سمت کلاینت معمولاً آسان است. بدین شکل شما میتوانید ابتدا یک مقدار معتبر را در این بخشها داخل مرورگر وارد نموده و سپس هنگام ارسال این مقادیر، به وسیله یک پروکسی، دادهها را به مقدار دلخواه خود تغییر دهید.
این مقاله جزئیات این روش را توضیح میدهد.
توجه:
استفاده از کدهای جاوا اسکریپت به منظور کنترل ورودی های کاربر در سمت کلاینت، روش رایجی می باشد. اما نباید از این موضوع نتیجه گیری نمود که تمام برنامه ها در این مورد آسیب پذیر هستند. برنامه، تنها در صورتی که اعتبار سنجی صرفا در سمت کلاینت صورت گرفته و در سرور، مدیریتی بر روی آن انجام نپذیرد آسیب پذیر می باشد.
در برخی شرایط توسعه دهندگان وب به منظور پیشگیری از برخی رفتارها و ورود موارد نامطلوب توسط کاربر، از اعتبار سنجی سمت کلاینت بهره می برند و این موضوع را سمت سرور نیز بررسی می نمایند.
ابتدا اطمینان حاصل نمایید که تنظیمات پروکسی در مرورگر به درستی انجام شده ولی در تب Intercept، کلید Intercept is off انتخاب شده باشد (غیرفعال بودن Intercept).
سپس اقدام به مشاهده وب سایت از طریق مرورگر نمایید.
به صفحه ای که قصد تست آن را دارید مراجعه نمایید.
در این مثال ما از صفحه “Bypass Client Side JavaScript Validation” موجود در ابزار آموزشی “WebGoat” استفاده می نماییم.
پس از ورود اطلاعات معتبر در بخش های موجود به Burp Suite بازگشته و با کلیک بر رو دکمه موجود در بخش Intercept، اطمینان حاصل نمایید که Intercept is on تنظیم شده باشد (فعال بودن Intercept).
مجدد به مرورگر بازگشته و بر روی دکمه Submit کلیک نمایید تا اطلاعات وارد شده، پیش از ارسال به سرور، در ابزار Burp Suite قابل مشاهده باشد.
در این بخش ما به قسمت Params از بخش Intercept مراجعه می کنیم. در قسمت Params امکان مشاهده داده های وارد شده و همچنین ویرایش آن ها وجود دارد.
پس از انجام تغییرات لازم (در این مثال اضافه نمودن حرف z به انتهای تمام بخش های موجود) بر روی دکمه Forward کلیک نموده تا داده ها به سمت سرور ارسال گردد.
همانطور که در تصویر بالا قابل مشاهده می باشد، تغییرات با موفقیت ذخیره گردید و با توجه به اعتبار سنجی ورودی ها به وسیل جاوا اسکریپت، تغییرات لازم اعمال گردید.
در این بخش حتی بخش هایی که تنها عدد را از کاربر قبول می کردند، ثبت مقدار z در انتهای آن ها نیز با موفقیت صورت گرفته و اصطلاحا Bypass گردید.