روز دیگر با سرویسی برخورد کردم که امضای درخواست ها را در سمت سرور تأیید می کرد. این یک کازینو آنلاین کوچک بود که برای هر درخواست مقداری از ارزش ارسال شده توسط کاربر از مرورگر را بررسی می کرد. صرف نظر از کاری که در کازینو انجام میدادید: شرطبندی یا واریز، یک پارامتر اضافی در هر درخواست مقدار «نشانه» بود که شامل مجموعهای از کاراکترهای به ظاهر تصادفی بود. ارسال درخواست بدون آن غیرممکن بود – سایت خطایی را نشان داد و من را از ارسال درخواست های سفارشی خود منع کرد.
اگر این ارزش نبود، در آن لحظه سایت را ترک می کردم و دیگر به آن فکر نمی کردم. اما برخلاف همه شانسها، این حس سود سریع نبود که من را هیجان زده کرد، بلکه علاقه تحقیقاتی و چالشی بود که کازینو با اثبات احمقانهاش به من میداد.
صرف نظر از هدفی که توسعه دهندگان از افزودن این پارامتر در ذهن داشتند، به نظر من این اتلاف وقت بود. از این گذشته، خود امضا در سمت مشتری تولید می شود و هر اقدام سمت مشتری می تواند مشمول مهندسی معکوس شود.
در این مقاله، من در مورد اینکه چگونه موفق شدم صحبت خواهم کرد:
- الگوریتم تولید امضای درخواست را حل کنید
- پسوند خودم را برای Burp Suite بنویسم که تمام کارهای کثیف را خودکار می کند
این مقاله به شما یاد می دهد که چگونه …