اگر به امنیت وب، هک اخلاقی و Bug Bounty علاقه دارید اما نمیدانید از کجا باید شروع کنید، این راهنما برای شماست. در این مقاله مسیر یادگیری Web Hacking را از مفاهیم پایه وب و شبکه تا شناسایی آسیبپذیریها، استفاده از ابزارهای امنیتی و ورود به دنیای Bug Bounty بررسی میکنیم.

اگر به هک اخلاقی، امنیت سایبری و کشف آسیبپذیریهای وب علاقه دارید، احتمالاً اولین سؤالی که برایتان ایجاد میشود این است که «از کجا شروع کنم؟». دنیای امنیت وب بسیار گسترده است و وجود ابزارها، تکنیکها و اصطلاحات مختلف ممکن است در ابتدای مسیر کمی گیجکننده باشد.
برای تبدیل شدن به یک Web Hacker لازم نیست از همان ابتدا سراغ مباحث بسیار پیچیده بروید. مسیر درست این است که ابتدا نحوه کار وب را یاد بگیرید، سپس مفاهیم امنیتی مهم را بشناسید و بعد با ابزارهای تست امنیت و روشهای شناسایی آسیبپذیری آشنا شوید.
Bug Bounty نیز یکی از مسیرهایی است که میتوانید بعد از کسب دانش و مهارت کافی وارد آن شوید. در این برنامهها شرکتها به پژوهشگران امنیتی اجازه میدهند در محدوده مشخصی محصولات و سرویسهای خود را بررسی کنند و در صورت پیدا کردن آسیبپذیری معتبر، آن را گزارش دهند.
در این مقاله میخواهیم یک نقشه راه ساده و کاربردی برای شروع امنیت وب و Bug Bounty داشته باشیم؛ مسیری که از مفاهیم پایه شروع میشود و در ادامه شما را به سمت Web Hacking و تست امنیتی برنامههای وب هدایت میکند.
Web Hacking به بررسی امنیت برنامهها و سرویسهای تحت وب گفته میشود. هدف یک متخصص امنیت وب این است که رفتار برنامه را بررسی کند و نقاط ضعفی را پیدا کند که ممکن است باعث دسترسی غیرمجاز، افشای اطلاعات یا سایر مشکلات امنیتی شوند.
البته Web Hacking حرفهای باید در محیطهایی انجام شود که مجوز تست آنها وجود دارد؛ مانند آزمایشگاههای آموزشی، پروژههای شخصی یا برنامههای Bug Bounty دارای Scope مشخص.
Bug Bounty برنامهای است که شرکتها برای دریافت گزارش آسیبپذیریهای امنیتی از پژوهشگران ایجاد میکنند. پژوهشگر در محدودهای که شرکت مشخص کرده، برنامه را بررسی میکند و در صورت پیدا کردن یک آسیبپذیری معتبر، آن را گزارش میدهد.
بعضی از این برنامهها برای آسیبپذیریهای معتبر پاداش مالی نیز پرداخت میکنند. اما موفقیت در Bug Bounty به دانش، تجربه، صبر و توانایی تحلیل برنامه نیاز دارد و نباید آن را راهی برای درآمد سریع در نظر گرفت.
برای شروع نیازی نیست برنامهنویس حرفهای باشید، اما آشنایی با برنامهنویسی در ادامه مسیر بسیار کمککننده خواهد بود. وقتی ساختار کد و منطق برنامه را درک کنید، بهتر میتوانید متوجه شوید دادههای ورودی چگونه پردازش میشوند و مشکلات امنیتی در کدام قسمت ممکن است ایجاد شوند.
در ابتدا آشنایی با HTML، JavaScript و مفاهیم پایه یک زبان برنامهنویسی کافی است. در ادامه میتوانید یک زبان سمت سرور مانند C#، Python یا PHP را نیز یاد بگیرید.

لازم نیست برای شروع Web Hacking متخصص شبکه باشید، اما باید مفاهیم پایهای مانند IP، Port، DNS، TCP، Client و Server را بشناسید. این مفاهیم به شما کمک میکنند ارتباط میان سیستمها و سرویسهای مختلف را بهتر درک کنید.
برای مثال در مراحل Recon، دانستن اینکه یک دامنه چگونه به IP متصل میشود یا یک سرویس روی چه Portی در دسترس است، اهمیت زیادی دارد.
HTTP پایه اصلی ارتباط بسیاری از برنامههای وب است. مرورگر درخواست را برای سرور ارسال میکند و سرور نیز پاسخی به آن برمیگرداند.
یک Web Hacker باید بتواند Methodهایی مانند GET و POST، Headerها، Cookieها، پارامترها، Body و Status Codeها را تشخیص دهد و رفتار Request و Response را تحلیل کند.
HTTPS نیز نسخه امنشده ارتباط HTTP است که با استفاده از TLS ارتباط میان Client و Server را رمزنگاری میکند.
شناخت HTML و JavaScript برای امنیت وب اهمیت زیادی دارد. HTML ساختار صفحه را مشخص میکند و JavaScript رفتارهای تعاملی و بسیاری از ارتباطات سمت کاربر را مدیریت میکند.
آشنایی با این دو فناوری درک آسیبپذیریهایی مانند XSS و مشکلات سمت Client را بسیار سادهتر میکند.
Authentication مشخص میکند کاربر چه کسی است، در حالی که Authorization مشخص میکند همان کاربر چه دسترسیهایی دارد.
درک این تفاوت برای یادگیری آسیبپذیریهای مربوط به حسابهای کاربری و کنترل دسترسی، مانند IDOR، بسیار مهم است.
Burp Suite یکی از مهمترین ابزارهای تست امنیت برنامههای وب است. این ابزار به شما اجازه میدهد Request و Responseهای HTTP را مشاهده و تحلیل کنید و در محیطهای مجاز، رفتار درخواستها را بررسی کنید.
برای شروع بهتر است ابتدا Proxy و Repeater را یاد بگیرید و بعد به سراغ قابلیتهای پیشرفتهتر بروید.
Recon یا شناسایی یکی از مراحل مهم تست امنیت است. در این مرحله تلاش میکنیم داراییهای قابل بررسی یک هدف مجاز را بهتر بشناسیم؛ مانند دامنهها، Subdomainها، Endpointها، APIها و فناوریهای مورد استفاده.
هدف Recon این است که قبل از بررسی آسیبپذیری، دید مناسبی نسبت به سطح حمله داشته باشیم.
بعد از یادگیری مبانی وب و ابزارهای اصلی، میتوانیم سراغ آسیبپذیریهای رایج برویم. پیشنهاد میشود هر آسیبپذیری را از علت ایجاد تا روش شناسایی و راهکار جلوگیری از آن یاد بگیرید.
بعد از یادگیری مبانی و تمرین در محیطهای آموزشی، میتوانید برنامههای Bug Bounty مناسب سطح خود را پیدا کنید.
قبل از هر تست باید Scope و قوانین برنامه را به دقت بخوانید. فقط اهدافی را بررسی کنید که صراحتاً اجازه تست آنها داده شده است.
در ابتدای کار بهتر است هدف شما پیدا کردن اولین گزارش معتبر و یادگیری فرآیند باشد، نه کسب درآمد سریع.
برای شروع امنیت وب لازم نیست همه چیز را یکباره یاد بگیرید. ابتدا پایههای وب و شبکه را یاد بگیرید، سپس سراغ HTTP، Authentication، ابزارهایی مانند Burp Suite و فرآیند Recon بروید و در ادامه آسیبپذیریهای مهم را به صورت عملی تمرین کنید.