THT DUYURU

 
 
Capture The Flag Vulnerable VM Walkthrough & Capture The Flag (CTF) Writeup Yazabileceğiniz Bölüm

Seçenekler

Hack The Box Web Challenge Emdee Five For Life Writeup

raddon - ait Kullanıcı Resmi (Avatar)
Yeni Üye
Üyelik tarihi:
05/2020
Mesajlar:
4
Konular:
4
Teşekkür (Etti):
0
Teşekkür (Aldı):
9
Ticaret:
(0) %
0
1270
07-06-2020 14:11
#1
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

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler