Web CTF vazifalarini yechish: chuqur, amaliy va toʻliq qoʻllanma

Web CTF vazifalarini yechish: chuqur, amaliy va toʻliq qoʻllanma - ProblemStack.uz Blog Article
IbragimovQuvonchbek - ProblemStack.uz Profile
IbragimovQuvonchbek

November 11, 2025

7 min read 49 views

 

Web CTF (Capture The Flag) — veb-xavfsizlik sohasidagi eng mashhur va foydali kategoriyalardan biri. Bunda ishtirokchilar veb-ilovalar, APIlar yoki server konfiguratsiyasidagi zaifliklarni topib, ularni ekspluatatsiya qilib, flag (maxfiy kod) topishadi. Quyidagi maqola sizga bosqichma-bosqich, nazariyadan amaliyotgacha, Web CTF vazifalarini qanday yechishni oʻrgatadi.


1. Nega Web CTF muhim?

  • Real-world ko‘nikmalar: web zaifliklari real ilovalarda uchraydi — ularni topish va tushunish pentesting uchun muhim.

  • Tuzilgan qamrov: web CTFlar HTTP, JavaScript, server-side kod, ma’lumotlar bazalari, auth mexanizmlari va boshqalarni qamrab oladi.

  • O‘rganish natijasida: exploit yozish, request manipulation, payload yaratish va defensive fikrlash (secure coding) bo‘yicha chuqur tajriba hosil bo‘ladi.


2. Kerakli texnik bilimlar (nima bilish kerak)

A. Frontend asoslari

  • HTML: DOM, formlar, atributlar (name, id, action, method).

  • CSS: minimal (stylingdan koʻra DOM focus).

  • JavaScript: DOM manipulation, eventlar, AJAX/fetch, XSS (saqlanadigan va reflektlangan XSS konseptlari).

B. Backend va protokollar

  • HTTP/HTTPS: metodlar (GET/POST/PUT/DELETE), status kodlar (200, 302, 403, 500), cookie va headerlar.

  • Sessionlar va auth: cookie-based auth, JWT, OAuth basics.

  • Databases: SQL sintaksisi, parametrik soʻrovlar, prepared statements.

C. Zaifliklar (majburiy)

  • SQL Injection (SQLi): error-based, union-based, boolean-based, time-based.

  • Cross-Site Scripting (XSS): reflected, stored, DOM-based.

  • Cross-Site Request Forgery (CSRF): tokenlar, same-site cookie.

  • File upload vulnerabilities: extension bypass, content-type spoofing, path traversal.

  • Insecure Direct Object References (IDOR): authorization bypass orqali resursga kirish.

  • Server-Side Request Forgery (SSRF): serverdan ichki tarmoqqa soʻrov yuborish.

  • Remote Code Execution (RCE) & Local File Inclusion (LFI), Remote File Inclusion (RFI) — advanced.

D. Asboblar va muhit

  • Burp Suite (Community/Pro): Proxy, Intruder, Repeater, Scanner (Proda).

  • OWASP ZAP: bepul alternativ.

  • curl, httpie: terminaldan HTTP soʻrovlar.

  • Browser devtools: Network/Console/Elements.

  • sqlmap (oʻrganish uchun — avto asbob, CTFda ehtiyotkor ishlatish).

  • wfuzz/gobuster: directory & parameter fuzzing.

  • ffuf: fast fuzzing.

  • nmap, netcat: tarmoq qismi uchun.


3. Vazifani yechish strategiyasi (step-by-step)

  1. Recon (reconnaissance)

    • URL larni, subdomainlarni, javob sarlavhalarini, cookie’larni, JS fayllarni va API endpointlarni toʻliq yigʻing.

    • Browser DevTools → Network va Sources panelini tekshiring; JS fayllardagi o‘zgaruvchilar va endpointlar koʻpincha flag yoʻllariga ishora qiladi.

  2. Mapping

    • Forms, parameters, headers va cookies roʻyxatini tuzing. Qanday inputlar qayerga ketishini aniqlang.

    • Kirish/chiqish (login/logout), file upload, search va comment funktsiyalariga eʼtibor bering — ular odatda zaif bo‘ladi.

  3. Fuzzing

    • Parametrlarni fuzz qiling: gittik qiymatlar, maxsus belgilar, uzun satrlar, path traversal payloadlar.

    • Directory bruteforce (ffuf/gobuster) bilan yashirin endpointlarni toping.

  4. Zaifliklarni aniqlash

    • SQLi: parametrga ' OR '1'='1 kabi oddiy payload bilan tekshirish. Error messages, timing behaviour va response differences ga eʼtibor.

    • XSS: <script>alert(1)</script> yoki "><img src=x onerror=alert(1)> kabi inputlarni sinab koʻring. DOM-based XSS uchun JS fayllarni tahlil qiling.

    • CSRF: state-changing requests (POST, DELETE) uchun anti-CSRF token bor-yoʻqligini tekshiring.

    • IDOR: resursga oid parametrlarni (id=1 → id=2) o‘zgartirib, boshqa user resursiga kirish mumkin-mi deb sinab ko‘ring.

    • File upload: fayl turlari/miqyosini o‘zgartirib, serverga cheklovlarni aylanib oʻtish imkoniyatlarini tekshiring.

  5. Exploit yaratish

    • Zaiflik aniqlangach, uni CTF muhitiga mos exploit bilan ekspluatatsiya qiling — flagni ochish uchun zarur bo‘lgan payloadni tanlang.

    • Har bir qadamni yozib boring — so‘rovlar, javoblar, timing, eventual flag ko‘rsatishi.

  6. Post-exploitation (agar kerak bo‘lsa)

    • Agar server ichida ma’lumot topilsa (masalan, /etc/passwd, config.php), undan flag qayerda ekanligini toping.

    • Muammolar: serverda write access bo‘lsa, web shell o‘rnatish CTF-konventsiya doirasida ruxsat etilgan bo‘lishi mumkin — lekin real dunyoda ruxsatsiz hujum yasal jihatdan noqonuniy.

  7. Hujjatlash (writeup)

    • Izchil writeup yozing: so‘rovlar, payloadlar, qadamlar, nima ishladi va nima ishlamadi. Ekran tasvirlari va HTTP so‘rovlarini qo‘shing.


4. Amaliy payload misollari (taʼlimiy)

Eslatma: quyidagi misollar faqat o‘rgatuvchilik va CTF maqsadlari uchun; haqiqiy tizimlarga ruxsatsiz qo‘llash yasal jihatdan muammoli.

SQLi — oddiy test

  • Payload (login form parameter name=username):
    admin' OR '1'='1' --

  • Boolean-based test:
    username=admin' AND 1=1 -- (javob farqini tekshirish)
    username=admin' AND 1=2 --

XSS — reflected test

  • <script>alert(document.cookie)</script>

  • <img src=x onerror=alert(1)>

  • DOM-based: "><svg onload=alert(1)> (JS fayllardagi sinklarni tekshiring)

CSRF — minimal test

  • Agar state-changing POST kerak bo‘lsa va no CSRF token bo‘lsa, oson test: yaratish endpointiga boshqa sayt orqali avtomatik forma yuborish.

LFI / Path traversal

  • ../../../../etc/passwd

  • ../../../../var/www/html/config.php


5. Burp Suite bilan ishlash bo‘yicha amaliy yoʻriqnoma

  1. Proxy sozlash: brauzerni Burp proxy (default 127.0.0.1:8080) orqali yoʻnaltiring.

  2. Intercept: soʻrovlarni toʻxtatib, parametrlarni o‘zgartiring.

  3. Repeater: qaysi soʻrovni qanday qayta yuborish mumkinligini tajriba qiling.

  4. Intruder: parametrlarni avtomatik fuzz qilish uchun. (Community versiyada sekin)

  5. Extender & Plugins: burp plugin’lari (bounty-extensions, paramminer) yordam beradi.

  6. Scanner (Pro): avtomatik zaiflik tekshiruvi — o‘rganish uchun foydali, lekin CTFda odatda manual yondashuv ustun.


6. Common mistakes (ko‘p uchraydigan xatolar)

  • Har endpointni tekshirmaslik: JS fayllarni va AJAX endpointlarni unutmang.

  • Only GUI testing: terminal va scripts (curl, python requests) ishlatish unumdor.

  • Over-reliance on automated tools: sqlmap, scannerlar foydali, lekin ko‘p paytlar manual chaining (bir nechta kamchiliklarni birlashtirish) talab etiladi.

  • No writeup: o‘rganganlaringizni yozib qo‘ymang — keyin eslash qiyin bo‘ladi.


7. Mashq qilish uchun platformalar va labs

  • ProblemStack.uz — juda ko‘p zaifliklar.

  • PortSwigger Web Security Academy — interaktiv darslar va labs (eng yaxshi boshlangʻich).

  • HackTheBox — real-like vulnerable web apps (Boxes va Challenges).

  • TryHackMe — tutorial bilan web security rooms.

  • OWASP Juice Shop — intentionally insecure application.

  • bWAPP va Damn Vulnerable Web App (DVWA) — boshlang‘ich uchun.

  • WebGoat — OWASPning ta'lim appi.


8. Web CTF vazifasini yechish uchun 30-kunlik amaliy reja

Maqsad: 30 kundan keyin siz oddiy va o‘rta darajadagi Web CTF’larni mustaqil yecha olasiz.

  • Kun 1–3: HTTP, cookie, session, browser devtools amaliyoti.

  • Kun 4–7: HTML/JS asoslari, DOM, AJAX, fetch.

  • Kun 8–11: XSS (reflected, stored, DOM) — amaliy labs (OWASP Academy).

  • Kun 12–15: SQLi (union, boolean, time-based) — basic lab.

  • Kun 16–18: CSRF va auth bypass (IDOR).

  • Kun 19–21: File upload va path traversal & LFI.

  • Kun 22–25: SSRF va header injection.

  • Kun 26–28: Burp Suite mastering; Repeater, Intruder, Collaborator (SSRF detection).

  • Kun 29–30: 2 mini-CTF session + writeups.


9. CTF challenge yaratish uchun gʻoyalar (ProblemStack.uz uchun)

Agar siz saytga Web CTF vazifalari qoʻshmoqchi bo‘lsangiz, quyidagi gʻoyalarni ishlating:

  1. Reflected XSS simple — query param dan chiqadigan sahifa; inputni sanitizatsiya qilinmagan.

  2. Stored XSS (comments) — comment qutisiga flag qo‘yish simulyatsiyasi.

  3. Simple SQLi login bypass — vulnerable login form + admin flag page.

  4. IDOR challenge — GET /download?id=5 va to‘g‘ri authorization tekshiruvini eʼtiborsiz qoldirish.

  5. File upload + RCE (advanced) — cheklovlarni bypass qilib, PHP webshell joylashtirish (CTF muhitida).

  6. SSRF — internal servicega so‘rov yuborish orqali flag olingan endpointga kirish.

  7. JWT misconfiguration — alg=none yoki leaked secret.

  8. Race condition / Logic bug — bir nechta step’da flag beriladigan biznes logik xatosi.

Har challenge uchun: title, description (no hints), difficulty, files (zip), validator script va test cases tayyorlang.


10. Qanday writeup yozish kerak (namuna struktura)

  1. Challenge name & difficulty

  2. Initial recon: visible endpoints, login, API.

  3. Vulnerability discovery: qaysi parametr yoki endpoint zaifligi aniqlangan.

  4. Proof of concept (PoC): request/response, payload, ekran tasviri.

  5. Flag extraction: qanday flag topilgani, toʻliq qoʻllanish.

  6. Mitigation: qaysi kod oʻzgarishi yoki konfiguratsiya yordamida xatolik bartaraf etiladi.

  7. Lessons learned.


11. Defensiv aspektlar — kod yozuvchilarga tavsiya (quick fixes)

  • Input validation & Output encoding: XSS uchun Content-Security-Policy, HTML-encode user-supplied data.

  • Parameterized queries / prepared statements: SQLi uchun eng muhim.

  • CSRF token: state-changing so‘rovlar uchun tokenni tekshirish va SameSite cookie.

  • File upload validation: server tomonida mime-type, extension, va fayl kontenti tekshiruvi, fayllarni webroot tashqarisida saqlash.

  • Least privilege: resurslar uchun minimal huquqlar.

  • Proper error handling: detailed DB/stack traces internallarda ko‘rsatilmasin.


12. Oxirgi maslahatlar va motivatsiya

  • Manual > Automated: avtomatlashtirilgan asboblar yordam beradi, lekin manual chaining va fikrlash muhim.

  • Writeups o‘qing: boshqalar qanday yechganini oʻrganish sizni tezroq rivojlantiradi.

  • CTFlarda qatnashing: real vaqtli vaziyatlar sizni test qiladi.

  • Community: savollar va tajriba almashish uchun jamoalarga qo‘shiling (Discord, Telegram, lokal meetuplar).

  • Ethics: hech qachon ruxsatsiz haqiqiy tizimlarga hujum qilmang — CTF va lab muhitlari o‘rganish uchun yetarli.

Share this article

Related Posts

SQL Injection nima va undan qanday himoyalanish mumkin? To‘liq tushuncha va real kod misollari

SQL Injection (SQLi) — bu hujumchi foydalanuvchi kiritadigan ma’lumotlar orqali SQL so‘roviga zararli kod qo‘shishi va natijada ma’lumotlar bazasiga ruxsatsiz kirishi mumkin bo‘lgan xavfsizlik zaifligidir. Bu zaiflik OWASP Top 10’da uzoq yillardan beri yetakchi o‘rinlarda turadi. U noto‘g‘ri yozilgan backend kod, filtrlanmagan input va sanitizatsiyasiz SQL so‘rovlari natijasida yuzaga keladi.

Dec 01, 2025

🎣 Phishing hujumlari qanday ishlaydi? To‘liq professional tahlil

Kiberjinoyatchilar tomonidan eng ko‘p qo‘llaniladigan hujum usullaridan biri — phishing (“fishing” — ma’nosi: "qarmoqqa ilish"). Bu usulda hujumchi texnik ekspluatatsiya emas, balki inson psixologiyasidan foydalanadi. Shu sababli phishingga qarshi eng yaxshi himoya — xabardorlik. Ushbu maqolada phishingning ishlash mexanizmi, turli shakllari, real ssenariylar va unga qarshi samarali himoya choralarini tahlil qilamiz.

Nov 30, 2025

🌐 Tarmoq (Network) qanday ishlaydi: to‘liq qo‘llanma

Internet va ichki tarmoqlar hayotimizning ajralmas qismiga aylangan. Har bir qurilma, server yoki smartfon tarmoq orqali ma’lumot almashadi. Ushbu maqolada sizga tarmoqning asosiy tushunchalari, ishlash prinsiplari, protokollar, IP va MAC manzillari, routing, NAT, firewall va xavfsizlik jihatlari batafsil tushuntiriladi.

Nov 12, 2025

MAC (Media Access Control) manzili — toʻliq va amaliy qoʻllanma

MAC manzili (Media Access Control address) — tarmoq qurilmalarining link-layer (odatda Ethernet yoki Wi‑Fi) darajasidagi noyob identifikatori. Ushbu maqolada MAC manzili nima ekanligi, tuzilishi, turlari, qanday ishlashi, IP bilan farqi, sozlash va xavfsizlik jihatlari — hammasi amaliy misollar va buyruqlar bilan batafsil tushuntiriladi.

Nov 12, 2025