Hack The Box Web Challenge Emdee Five For Life Writeup

raddon

Yeni üye
19 May 2020
4
0
merhaba arkadaşlar

challange name : emdee five for life
hackthebox challange link : https://www.hackthebox.eu/home/challenges/Web
challange host : http://docker.hackthebox.eu:32102 (sizde farklı bir port olacaktır)
hedef : gösterilen metnin md5 ile encode edilmiş halini siteye istendiği şekilde submit etmek

Walkthrough
browser üzerinden verilen metnin md5'ini alıp submit ettiğimizde sayfa bize "too slow" şeklinde bir sonuç döndürüyor. browser üzerinden yaptığımız submit işlemi flag almak için yavaş kalıyor. bu yüzden bir python scripti yazacağız

ilk olarak kullanacağımız kütüphaneleri import edelim
hashlib, encode decode işlemlerini yapabileceğimiz kütüphane
requests, http istek ve sonuçlarını yönetebileceğimiz kütüphane
BeautifulSoup, html tagları arasında gezinmemizi sağlayacak kütüphane
Kod:
import hashlib
import requests
from bs4 import BeautifulSoup


hostumuzu link isimli bir değişkene atıyoruz
Kod:
link = "http://docker.hackthebox.eu:32102/"


session metodu ile sessionımızı oluşturuyoruz ve get metodu ile hostumuza bir istekte bulunuyoruz. sonuçları BeautifulSoup ile işleyebilmek için istek cevabını content olarak alıyoruz
Kod:
session = requests.session()
get_req = session.get(link).content


md5 ile encode edeceğimiz metni bulmak için BeautifulSoupa kaynak kodumuzu belirtiyoruz. sayfanın kaynak kodu incelendiğinde decode etmemiz gereken metinin "h3" tagları arasında olduğunu görüyoruz. bu yüzden find komutuna "h3" tagını yazıyoruz. text ile de "h3" tagları içindeki değeri alıyoruz
Kod:
source = BeautifulSoup(get_req, "html.parser")
word = source.find("h3").text


aldığımız metni hashlib ile md5 formatında encode ediyoruz
Kod:
md5_word = hashlib.md5(word.encode()).hexdigest()


kaynak koduna baktığımızda md5 ile encode edilmiş metni "hash" isimli input alanına girdiğimiz görebiliriz. post methodu ile bu datayı göndermek için data isimli dictionary oluşturuyorum. post methodu ile de isteğimde bulunuyorum
Kod:
data = {"hash": md5_word}
post_req = session.post(link, data=data).content


dönen kaynak kodunda da flagimizin p tagları içinde bulunduğunu görebilirsiniz. BeautifulSoup ile "p" tagını bulduğumda flagimi almış oluyorum
Kod:
source = BeautifulSoup(post_req, "html.parser")
flag = source.find("p").text
print(flag)


Kod:
import hashlib
import requests
from bs4 import BeautifulSoup

link = "http://docker.hackthebox.eu:32102/"

session = requests.session()
get_req = session.get(link).content
source = BeautifulSoup(get_req, "html.parser")
word = source.find("h3").text
md5_word = hashlib.md5(word.encode()).hexdigest()
data = {"hash": md5_word}
post_req = session.post(link, data=data).content
source = BeautifulSoup(post_req, "html.parser")
flag = source.find("p").text
print(flag)


tüm adımları video olarak da izleyebilirsiniz

https://youtu.be/VF6JD61brdM
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.