داستان از جایی شروع شد که در حال بررسی امنیتی یک وبسایت بودم. در این وبسایت، با مسیری به شکل زیر مواجه شدم:
index.php?cpath=23
همانطور که هر تستکننده امنیتی میداند، پارامترهای عددی در URLها اغلب هدف خوبی برای کشف آسیبپذیریهایی مانند SQL Injection و XSS (Cross-Site Scripting هستند. من هم بلافاصله شروع به تست این دو آسیبپذیری کردم.
ابتدا، تلاش کردم تا با Payloadهای رایج XSS، این آسیب پذیری رو چک کنم. اما متوجه شدم که ورودی به خوبی فیلتر میشود و خبری از XSS نبود.
ناامید نشدم و به سراغ SQL Injection رفتم. انواع Payloadهای SQLi را امتحان کردم، از Error-Based گرفته تا Time-Based و Boolean-Based. اما باز هم، نتیجه ناامیدکننده بود. به نظر میرسید که این پارامتر cpath به خوبی در برابر حملات SQL Injection نیز مقاوم است. داشتم کمکم ناامید میشدم و فکر میکردم که شاید این پارامتر اصلا آسیبپذیر نباشد.
اینجا بود که تصمیم گرفتم از ابزار ParamSpider استفاده کنم. ParamSpider ابزاری قدرتمند برای کشف پارامترهای پنهان یا کمتر شناختهشده در یک وبسایت است. با اجرای ParamSpider بر روی دامنه مورد نظر، لیستی از پارامترهای کشف شده به من نمایش داده شد.
در میان این پارامترها، یک مورد توجه من را جلب کرد:
cPath=
یک تفاوت ظاهراً بیاهمیت! این پارامتر دقیقاً همان cpath بود، اما با حرف "P" بزرگ (Camel Case).
بلافاصله، URL را با پارامتر جدید تست کردم:
index.php?cPath=23
و اینجا بود که جادو اتفاق افتاد! با تزریق Payloadهای SQL Injection، مشخص شد که این پارامتر جدید، یعنی cPath، آسیبپذیر است و میتوان از طریق آن حملات SQL Injection را با موفقیت انجام داد!

