HTTP Protokolü bir Request/Respond yani İstek/Yanıt protokoludür.
Kullanıcı web servere istek formlarından oluşan bir sorgu gönderir.
Ve web server ; server durumunu,protokol versiyonunu,hata kodlarını vs vs..
sorguya yanıt olarak kullanıcıya gönderir.
Yani HTTP Kullanıcı-Server arasında çeşitli formlardan oluşan bir protokoldür.
Peki bunları neden anlatıyorum
Çünkü birazdan bu formları kullanarak. formspring.me adresinde açık bulacağız.
Demiştikki HTPP ile sorgularımıza çeşitli yanıtlar gelmekte:
Web serverin bize verdiği yanıt HTTP 1.1 200 OK
Bütün HTTP Uygulamaları kendilerine gönderilen her sorguyu kabul etmek zorunda
ve “chunked” transfer-coding denilen kod ile decode etmektedir.
Bunu yaparken bu kodların ne işe yaradığını anlamazlar
Eğer isteklerimizi yukarda bahsettiğim ‘Chunked Encoding’ mekanizmasıyla
göderirsek ne olur?
Ne olacak veri taşması olur.Yani Over Flow Vulnerability.
Hangi sorguları gösdereceğim?Bunu 2 şekilde göstereceğim:# Telnet Kullanarak:
telnet formspring.me 80 POST
HTTP/1.1
Host: formspring.me
Transfer-Encoding: chunkedc000000
Bu sorguyu gönderdiğimizde bağlantı hemen kopuyorsa serverde açık vardır.
# HTTP Editör Kullanarak
Yukarda Transfer-Encoding : chunked000000 isteğimizi gönderirsek bağlantı
501 implemented hatası veriyor ve hemen kopuyor
Demekki serverimizde açık mevcut:
Apache Chunked-Encoding Memory Corruption Vulnerability
Exploit: https://tik.lat/ucUlG
Bunu otomatik tarayan Nessus ve Retina Eeye programları mevcuttur.
Konuyu daha iyi anlamanız için size bir video çektim:
http://www.indirdur.net/files/1RKF1IKH/formspring.rar
Son düzenleme: