Skip to content

xNewt0/TryHackUs_CTF

Repository files navigation

TryHackUs CTF

Kasıtlı zafiyetler içeren PHP + MySQL + Apache CTF laboratuvarı

Siberpunk görselli, hikâye odaklı, Türkçe arayüzlü ve eğitim/lab ortamları için tasarlanmış bir çalışma.

PHP MySQL Apache Amaç


Genel Bakış

TryHackUs CTF, bilinçli olarak zafiyet bırakılmış challenge yüzeyleri etrafında tasarlanmış klasik bir LAMP tarzı eğitim laboratuvarıdır.
Proje şu yapıyı kullanır:

  • Vanilla PHP
  • MySQL / MariaDB
  • Apache + mod_rewrite + .htaccess
  • Türkçe arayüz metinleri
  • İngilizce challenge ipuçları ve teknik yönlendirmeler

Şunlar için uygundur:

  • yerel lab kurulumları
  • özel eğitim ortamları
  • demo makineleri / workshop egzersizleri
  • self-hosted CTF pratiği

İnternete açık production yayını için tasarlanmamıştır.


Özellikler

  • Hikâye odaklı underground portal teması
  • Cyberpunk / terminal esintili arayüz
  • 20 challenge flag
  • Easy → insane zorluk ilerleyişi
  • Bilinçli olarak zafiyetli authentication, dosya işlemleri, API ve admin akışları
  • Türkçe hikâye/metin yapısı, İngilizce teknik hintler
  • Genişletmesi ve özelleştirmesi kolay sade proje yapısı

Teknoloji Yığını

  • PHP 8.1+
  • MySQL / MariaDB
  • Apache
  • mod_rewrite
  • .htaccess desteği

Proje Yapısı

.
├── admin/          # Admin paneli, loglar ve yönetim yüzeyleri
├── api/            # Challenge'larda kullanılan API endpoint'leri
├── c2/             # Gizli / chained attack yüzeyleri
├── db/             # Veritabanı başlangıç SQL'i
├── includes/       # Ortak config, auth, db ve helper mantığı
├── static/         # CSS / JS dosyaları
├── uploads/        # Yazılabilir upload hedefi
├── *.php           # Ana uygulama sayfaları
├── robots.txt
└── README.md

Gereksinimler

Başlamadan önce şunların hazır olduğundan emin ol:

  • PHP 8.1+
  • Apache:
    • mod_rewrite açık olmalı
    • .htaccess desteği açık olmalı
  • MySQL veya MariaDB
  • Yazılabilir uploads/ klasörü

Önerilen ortam:

  • Ubuntu / Debian
  • Apache 2.4+
  • MariaDB 10.x+

Hızlı Kurulum

1) Projeyi Apache document root altına kopyala

Örnek:

sudo cp -r TryHackUs_CTF /var/www/html/

Ya da proje dizinine işaret eden ayrı bir virtual host tanımla.

2) Veritabanı config dosyasını düzenle

Düzenlenecek dosya:

includes/config.php

Kendi ortamına göre şunları ayarla:

  • host / port veya socket
  • veritabanı adı
  • kullanıcı adı / şifre
  • gerekirse base URL

3) Veritabanını import et

mysql -u root -p < db/setup.sql

4) uploads klasörünün yazılabilir olduğundan emin ol

chmod -R 775 uploads

5) Apache rewrite desteğini aç

sudo a2enmod rewrite
sudo systemctl restart apache2

6) Laboratuvarı aç

http://localhost/THUctf

veya tanımladığın vhost URL’si üzerinden eriş.


Challenge Haritası

ID Challenge Zafiyet
01 Robots Bilgi sızması
02 Source Code Kaynak kod sızması
03 Cookie Monster Cookie içinde hassas veri
04 Reflected XSS Reflected XSS
05 Directory Listing Dizin listeleme
06 HTTP Header Header içinde hassas veri
07 SQL Injection (Login) Auth bypass
08 IDOR Broken object-level authorization
09 Stored XSS Kalıcı XSS
10 Path Traversal Yetkisiz dosya okuma
11 File Upload Sınırsız / hatalı dosya upload
12 JWT None Algorithm JWT yanlış yapılandırması
13 SQL Injection (UNION) UNION tabanlı SQLi
14 Broken Access Control Admin API açığı
15 Log Injection + Path Traversal LFI / log poisoning
16 SSRF Server-side request forgery
17 XXE XML external entity injection
18 Mass Assignment Yetki yükseltme
19 Chained Access Çok adımlı exploit zinciri
20 Timing + Extension Timing leak + hash suistimali

Gerçekçi Davranış İçin Notlar

Bazı challenge’lar klasik Apache / LAMP davranışına dayanır. En sağlıklı sonuç için:

  • PHP built-in server yerine Apache tercih et
  • .htaccess aktif olsun
  • gerçek bir MySQL / MariaDB instance kullan
  • gerekli yerlerde upload klasörü yazılabilir olsun
  • encoded-path davranışları test edilecekse Apache tarafında aşağıdaki gibi uyumlu ayar kullan:
AllowEncodedSlashes NoDecode

Güvenlik Uyarısı

Bu repository, eğitim amacıyla kasıtlı olarak bırakılmış zafiyetler içerir.

Sadece şu ortamlarda kullan:

  • yerel sistemler
  • izole lab ortamları
  • özel CTF / eğitim altyapıları

Ne yaptığını tam bilmiyorsan bunu doğrudan internete açık şekilde yayınlama.


Sorumluluk Reddi

Bu proje yalnızca eğitim ve laboratuvar kullanımı içindir.

İçerdiği zafiyetler bilinçli olarak bırakılmıştır. Bunu public production uygulaması gibi dağıtma veya kullanma.