Wireshark kullanarak HTTP analizi

Http Analysis Using Wireshark



HTTP nedir?

Birincisi, HTTP'nin tam biçimi Köprü Metni Aktarım Protokolüdür. HTTP, ISO veya TCP/IP modelinde bir uygulama katmanı protokolüdür. Uygulama katmanının altında bulunan HTTP'yi bulmak için aşağıdaki resme bakın.







HTTP tarafından kullanılır Dünya çapında Ağ (w.w.w) ve mesajların tarayıcı tarafından nasıl biçimlendirildiğini ve iletildiğini tanımlar. Bu nedenle HTTP, bir tarayıcı HTTP komutu aldığında hangi işlemin yapılması gerektiğini belirler. Ayrıca HTTP, sunucudan veri almak için HTTP komutunu iletmek için kuralları tanımlar.



Örneğin, tarayıcıya (Internet Explorer, Chrome, Firefox, Safari vb.) bir url girdiğinizde, aslında sunucuya bir HTTP komutu gönderir. Ve sunucu uygun komutla yanıt verir.



HTTP Yöntemleri:

HTTP/1.1 için bazı yöntemler vardır (Bu, HTTP sürümüdür)





GET, HEAD, POST, PUT, DELETE, CONNECT, OPTION ve TRACE.

Her bir yöntemin ayrıntılarına girmeyeceğiz, bunun yerine oldukça sık görülen yöntemler hakkında bilgi sahibi olacağız.



ELDE ETMEK: GET isteği, web sunucusundan veri ister. Bu, belge alımında kullanılan ana yöntemdir. Bu yöntemin pratik bir örneğini göreceğiz.

İLETİ: POST yöntemi, bazı verilerin sunucuya gönderilmesi gerektiğinde kullanılır.

HTTP, Wiresahark'tır:

HTTP'nin nasıl çalıştığını anlamak için pratik bir şey deneyelim mi?

Yani bu örnekte indireceğiz alice.txt (Sunucuda bulunan veri dosyası) itibaren gaia.cs.umass.edu sunucu.

Ayarlar:

  1. URL'yi aç http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Alice.txt dosyasını indirmek için tam URL'yi biliyoruz] bilgisayar tarayıcısında.
  2. Şimdi indirilen dosyayı tarayıcıda görüyoruz. İşte ekran görüntüsü

  1. Paralel olarak Wireshark'ta paketleri yakaladık.

Wireshark'ta HTTP paket alışverişi:

HTTP'ye girmeden önce, HTTP'nin taşıma katmanı protokolü olarak port 80'i ve TCP'yi kullandığını bilmeliyiz [TCP'yi başka bir konu tartışmasında açıklayacağız].

Şimdi bu URL'yi koyduğumuzda ve tarayıcıda enter tuşuna bastığımızda ağda ne olduğunu görelim.

İşte ekran görüntüsü

TCP 3-yollu el sıkışma ——-> HTTP Tamam ——-> TCP Verileri [alice.txt içeriği] ——->

HTTP-Tamam

Şimdi HTTP GET ve HTTP OK paketlerinin içinde neler olduğunu görelim.

Not: TCP alışverişlerini başka bir konu tartışmasında açıklayacağız.

HTTP GET:

TCP 3-yollu el sıkışma [SYN, SYN+ACK ve ACK paketleri] yapıldıktan sonra sunucuya HTTP GET isteği gönderilir ve paketteki önemli alanlar buradadır.

1.Talep Yöntemi: AL ==> Paket bir HTTP GET'dir.

2. İstek URI'si: /wireshark-labs/alice.txt ==> İstemci /Wireshark-labs altında bulunan alice.txt dosyasını istiyor

3.Talep sürümü: HTTP/1.1 ==> HTTP sürüm 1.1

4.Kabul et: metin/html, uygulama/xhtml+xml, resim/jxr, */* ==> Sunucuya [istemci tarafı tarayıcısının] kabul edebileceği dosya türü hakkında bilgi verir. Burada istemci, metin türü olan alice.txt'yi bekliyor.

5.Kabul Et-Dil: tr-TR ==> Kabul edilen dil standardı.

6.Kullanıcı Aracısı: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) Gecko gibi ==> İstemci tarafı tarayıcı türü. Mozilla, internet explorer kullansak da her zaman görsek de/maksimum süre diyor.

7.Kabul Et-Kodlama: gzip, söndür ==> İstemci tarafında kabul edilen kodlama.

8.Ana Bilgisayar: gaia.cs.umass.edu ==> Bu, istemcinin HTTP GET isteği gönderdiği web sunucusu adıdır.

9. Bağlantı: Canlı Tut ==> Bağlantı, geçerli işlem tamamlandıktan sonra ağ bağlantısının açık kalıp kalmayacağını kontrol eder. Bağlantı türü canlı tutmaktır.

İşte HTTP-GET paket alanları için ekran görüntüsü

HTTP Tamam:

TCP verisi [alice.txt içeriği] başarıyla gönderildikten sonra istemciye HTTP OK gönderilir ve paketteki önemli alanlar buradadır.
1. Yanıt Versiyonu: HTTP / 1.1 ==> Burada sunucu ayrıca HTTP sürüm 1.1'de
2.Durum Kodu: 200 ==> Sunucu tarafından gönderilen durum kodu.
3.Yanıt İfadesi: Tamam ==> Sunucu tarafından gönderilen yanıt ifadesi.

Yani 2 ve 3'ten 200 OK alıyoruz, bu da [HTTP GET] isteğinin başarılı olduğu anlamına geliyor.

4.Tarih: Paz, 10 Şub 2019 06:24:19 GMT ==> Geçerli tarih , HTTP GET'in sunucu tarafından alındığı GMT'deki saat.
5.Sunucu: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3 ==> Sunucu ayrıntıları ve yapılandırma sürümleri.
6.Son Değiştirilen : Cmt, 21 Ağu 2004 14:21:11 GMT ==> alice.txt dosyası için son değiştirilme tarihi ve saati.
7.ETag: 2524a-3e22aba3a03c0 ==> ETag, içeriğin önbelleğe almaya yardımcı olmak ve performansı artırmak için değiştirilmediğini gösterir. Veya içerik değiştiyse, bir kaynağın eşzamanlı güncellemelerinin birbirinin üzerine yazılmasını önlemeye yardımcı olmak için etag'ler yararlıdır.
8. Kabul Etme Aralıkları: bayt ==> Bayt, sunucuda içerik için kullanılan birimdir.
9.İçerik-Uzunluk: 152138 ==> Bu, alice.txt dosyasının bayt cinsinden toplam uzunluğudur.
10. Canlı Tut: zaman aşımı=5, maks=100 ==> Parametreleri canlı tut.
11. Bağlantı: Hayatta kal ==> Bağlantı, mevcut işlem tamamlandıktan sonra ağ bağlantısının açık kalıp kalmayacağını kontrol eder. Bağlantı türü canlı tutmaktır.
12.İçerik Türü: metin/düz; karakter kümesi=UTF-8 ==> İçerik [alice.txt] türü metindir ve karakter kümesi standardı UTF-8'dir.

İşte HTTP OK paketinin farklı alanları için ekran görüntüsü.

Artık web sunucusunda bulunan herhangi bir dosyayı istediğimizde ne olduğunu biliyoruz.

Çözüm:

HTTP, hayatımızda her gün kullandığımız basit bir uygulama protokolüdür. Ancak güvenli olmadığı için HTTPS uygulandı. Bu S güvenli anlamına gelir. Bu yüzden maksimum web sunucusu adı http ile başlar s://[web sitesiadı] . Bu, sizinle sunucu arasındaki tüm iletişimin şifrelendiği anlamına gelir. Gelecekte bu HTTPS hakkında ayrı bir tartışma yapacağız.