HTTP Proxy İle Web İsteği Yapmak! (Net/HTTP) ~ Web Exploit Geliştirme Kulübü

Bunjo

Uzman üye
14 Ara 2020
1,591
1,892
I Won

6449ti9.gif

pDHFoUY.png


Merhabalar ben Bunjo, bu konuda "Proxy" kullanarak Ruby'de nasıl http(s) isteklerinizi yapableceğinizi anlatacağım.

pDHFoUY.png


Proxy Nedir?

Proxy, bir ağ üzerindeki bilgisayarların, kullanıcıların ve diğer kaynakların, diğer ağ servislerine veya kaynaklarına erişimlerini sağlayan bir ara sunucu veya hizmettir. Temelde, proxy sunucu, bir kullanıcının isteğini alır, bu isteği hedef sunucuya iletir, hedef sunucudan gelen yanıtı alır ve bu yanıtı başlangıçtaki kullanıcıya iletir.
Proxylerin birçok farklı kullanım amacı vardır:

İnternet Erişimini Kontrol Etmek: Kuruluşlar, işletmeler veya okullar gibi yerlerde, belirli web sitelerine erişimi engellemek veya izlemek için proxyler kullanılabilir. Bu, çalışanların işle ilgili web sitelerine erişimini kontrol etmek veya çocukların zararlı içeriklere erişimini engellemek için kullanılabilir.

Gizliliği ve Güvenliği Sağlamak: Proxyler, kullanıcıların gerçek IP adreslerini gizlemek veya anonimleştirmek için kullanılabilir. Bu, internet üzerinde gezinirken gizliliği korumak isteyenler veya bölgesel kısıtlamaları aşmak isteyenler tarafından tercih edilir. Ayrıca, bazı proxyler, kullanıcıların internet trafiğini şifreleyerek ve güvenliği artırarak, açık ağlarda (örneğin, halka açık Wi-Fi ağlarında) güvenliğini sağlar.

İnternet Erişimini Hızlandırmak: Proxyler, sıkça talep edilen kaynakları yerel olarak önbelleğe alarak ve veri sıkıştırması gibi teknikler kullanarak internet erişimini hızlandırabilir. Bu, büyük bir ağ üzerinde bant genişliği tüketimini azaltabilir ve kullanıcıların daha hızlı yanıt almasını sağlayabilir.

Girişim ve Ağ Güvenliği: Proxyler, ağ trafiğini izleyerek kötü amaçlı yazılımları engelleyebilir, zararlı web sitelerine erişimi engelleyebilir ve gelen ve giden verileri filtreleyebilir. Bu, ağ güvenliğini artırmak için kullanılabilir ve kuruluşların bilgi güvenliğini sağlamasına yardımcı olabilir.

Proxyler, birçok farklı protokolü destekleyebilir, en yaygın olanları HTTP, HTTPS, FTP ve SOCKS'tur. Bu protokoller, web trafiği, dosya aktarımları ve diğer ağ iletişimi türleri için proxy kullanımını sağlar.

Proxyler, birçok farklı protokolü destekleyebilir, en yaygın olanları HTTP, HTTPS, FTP ve SOCKS'tur. Bu protokoller, web trafiği, dosya aktarımları ve diğer ağ iletişimi türleri için proxy kullanımını sağlar.


pDHFoUY.png



Proxy Türleri Nelerdir?

Saydam (Transparent) Proxy Sunucuları

Ücretsiz oldukları için en çok tercih edilenler arasındadır. En büyük sıkıntısı;IP gizleme işini tam olarak gerçekleştirememesidir. Veri trafiği için de herhangi bir şifreleme yoktur.

Anonim Proxy Sunucuları

IP adresinizi gizlemek için kullanılabilen sunucular, bu konuda yüksek oranda başarı sağlayabilirler. En büyük dezavantajlarından biri ise şifreleme konusunda aynı başarıyı gösterememeleridir. Ücretsiz, trafik kotalı ve ücretli olarak tercih seçenekleri vardır.

Elit Proxy Sunucuları

IP adresinizi gizleme ve web trafiğinizi şifreleme konusunda çok başarılıdır. Sunucular arasında en güvenilir ve en hızlı bağlantı sağlayabilir. Sadece deneme süreleri ücretsiz olarak kullanılır. Özellikle şirketler bu sunucu türünü daha çok tercih etmektedir.

Bağlantı türüne göre de ise iki farklı sunucusu bulunur:

HTTP (Web) Proxy Sunucuları

Genel olarak IP adresini gizlemek ve hızlı İnternet erişimi sağlamak amacı ile kullanılır. Yalnızca web sitelerinin ziyaretinde kullanılabilir. HTTP protokolü dışında hiçbir protokole bağlanmayı sağlamaz. Engellenen sitelere bağlanmak için en çok tercih edilen sunucu türüdür. Anonim, transparen ve elit değişik biçimleri kullanılabilir.

SOCKS Proxy Sunucuları

HTTP sunucularına göre çalışması daha yavaştır. SMTP ve FTP gibi sunucuları destekler. Yavaş çalıştığı için gerçek zamanlı çevrimiçi oyun oynamak için uygun değildir. SMTP desteğine rağmen, e-posta trafiği için kullanılması tavsiye edilmez

Alıntı: Proxy Nedir? Proxy Ne İşe Yarar? | Millenicom Blog


pDHFoUY.png


HTTP Proxy Nasıl Çalışır?

İstemci İsteği: İstemci (genellikle bir web tarayıcısı), bir web sitesine erişmek için bir HTTP isteği yapar.
İsteğin içerisinde hedef web sitesinin URL'si ve isteğin türü (GET, POST, vb.) bulunur.


Proxy Sunucu İstemi Alır: İstemci, isteği belirtilen proxy sunucusuna gönderir. Bu, istemcinin ağ yapılandırmasında belirtilmiş bir HTTP proxy sunucusudur.
İstemci, isteği doğrudan hedef sunucuya değil, proxy sunucusuna gönderir.

Proxy Sunucusu İsteği Alır ve İşler: Proxy sunucusu, isteği alır ve isteğin hedef web sitesine yönlendirilmesi için gerekli işlemleri yapar. Proxy sunucusu, isteğin içeriğini ve başlıklarını kontrol edebilir, kimlik doğrulaması yapabilir veya içeriği önbelleğe alabilir.

Hedef Sunucuya Yönlendirme: Proxy sunucusu, işlediği isteği hedef web sitesine (örneğin, bir web sunucusuna) iletmek için bir HTTP isteği yapar.
Bu istek, hedef sunucunun URL'sini, isteğin türünü ve isteğe eklenen herhangi bir veriyi içerir.

Hedef Sunucudan Yanıt Alınır: Hedef sunucu, proxy sunucusuna isteği işler ve isteğe yanıt verir.
Yanıt genellikle istemcinin isteğine uygun bir HTTP yanıtıdır (200 OK, 404 Not Found, vb.).

Proxy Sunucusu Yanıtı Alır ve İşler: Proxy sunucusu, hedef sunucudan gelen yanıtı alır ve gerektiğinde işler.
Yanıtı istemciye iletmek için gerekli kontrolleri yapabilir ve gerekirse yanıtı önbelleğe alabilir.


İstemciye Yanıt İletilir: Proxy sunucusu, hedef sunucudan gelen yanıtı alır ve bunu istemciye iletmek için gereken HTTP yanıtını oluşturur.
Bu yanıt, hedef sunucunun yanıtının bir parçasıdır ve istemciye gönderilir.
Kısaca:
j16hxqo.jpg


Ve dönüt içinde aynı yol izlenir.

pDHFoUY.png


NET/HTTP İle HTTP Proxy Kullanımı

Ruby:
require 'net/http'

# Proxy bilgileri
proxy_address = '202.131.65.110'
proxy_port = 80

# Hedef URL
url = URI::HTTP.build(host: 'example.com', path: '/')

# HTTP isteği oluşturma
request = Net::HTTP::Get.new(url)

# Proxy ayarları
http = Net::HTTP.Proxy(proxy_address, proxy_port).new(url.host, url.port)
http.use_ssl = (url.scheme == 'https')

# Proxy üzerinden istek yapma
response = http.request(request)

puts response.body

require 'net/http': Kodun başında, net/http kütüphanesini kullanacağımızı belirtir. Bu kütüphane, HTTP isteklerini yapmak ve yanıtları işlemek için kullanılır.

proxy_address ve proxy_port: HTTP proxy'nin adresi ve port numarası olarak tanımlanır. Bu bilgiler, proxy üzerinden istek yaparken kullanılacak olan proxy'nin konfigürasyonunu belirler.

url: Hedef URL, URI::HTTP.build metodu kullanılarak oluşturulur. Bu URL, example.com ana bilgisayarına yapılan bir HTTP isteğini temsil eder.

request: HTTP isteği, Net::HTTP::Get.new(url) ile oluşturulur. Bu istek, hedef URL'deki belirli bir kaynağı almak için GET metodunu kullanır.

http: HTTP bağlantısı, proxy ayarlarıyla oluşturulur. Net::HTTP.Proxy(proxy_address, proxy_port).new(url.host, url.port) ifadesiyle bir HTTP bağlantısı oluşturulur. Eğer URL şeması HTTPS ise, http.use_ssl = true ile SSL kullanımı etkinleştirilir.

response: HTTP isteği, oluşturulan HTTP bağlantısı üzerinden http.request(request) ile gönderilir. Bu, isteğin proxy aracılığıyla hedef sunucuya gönderilmesini sağlar. Ardından, response değişkenine yanıt atanır.

puts response.body: Yanıtın gövdesi, response.body kullanılarak konsola yazdırılır. Bu, hedef URL'den alınan içeriğin ekrana basılmasını sağlar.
Ücretsiz Proxy için kullanabilirsiniz: Get Unlimited Residential Proxies for $6 | Geonode

Eğer Proxy bağlantınız kullanıcı adı ve şifre ile korunuyorsa:
Ruby:
require 'net/http'

# Proxy bilgileri
proxy_address = '202.131.65.110'
proxy_port = 80
username = 'username'
password = 'password'

# Hedef URL
url = URI::HTTP.build(host: 'example.com', path: '/')

# HTTP isteği oluşturma
request = Net::HTTP::Get.new(url)

# Proxy ayarları
http = Net::HTTP.Proxy(proxy_address, proxy_port, username, password).new(url.host, url.port)
http.use_ssl = (url.scheme == 'https')

# Proxy üzerinden istek yapma
response = http.request(request)

puts response.body


pDHFoUY.png


Proxy İsteğin İncelenmesi

stzcfhj.png


bp5o52i.png


pDHFoUY.png


Okuyan herkese teşekkür ederim.

İyi forumlar!
 
Son düzenleme:

Butcherb3y

Uzman üye
1 Eyl 2022
1,589
1,178
Anıtkabir

6449ti9.gif

pDHFoUY.png


Merhabalar ben Bunjo, bu konuda "Proxy" kullanarak Ruby'de nasıl http(s) isteklerinizi yapableceğinizi anlatacağım.

pDHFoUY.png


Proxy Nedir?

Proxy, bir ağ üzerindeki bilgisayarların, kullanıcıların ve diğer kaynakların, diğer ağ servislerine veya kaynaklarına erişimlerini sağlayan bir ara sunucu veya hizmettir. Temelde, proxy sunucu, bir kullanıcının isteğini alır, bu isteği hedef sunucuya iletir, hedef sunucudan gelen yanıtı alır ve bu yanıtı başlangıçtaki kullanıcıya iletir.
Proxylerin birçok farklı kullanım amacı vardır:

İnternet Erişimini Kontrol Etmek: Kuruluşlar, işletmeler veya okullar gibi yerlerde, belirli web sitelerine erişimi engellemek veya izlemek için proxyler kullanılabilir. Bu, çalışanların işle ilgili web sitelerine erişimini kontrol etmek veya çocukların zararlı içeriklere erişimini engellemek için kullanılabilir.

Gizliliği ve Güvenliği Sağlamak: Proxyler, kullanıcıların gerçek IP adreslerini gizlemek veya anonimleştirmek için kullanılabilir. Bu, internet üzerinde gezinirken gizliliği korumak isteyenler veya bölgesel kısıtlamaları aşmak isteyenler tarafından tercih edilir. Ayrıca, bazı proxyler, kullanıcıların internet trafiğini şifreleyerek ve güvenliği artırarak, açık ağlarda (örneğin, halka açık Wi-Fi ağlarında) güvenliğini sağlar.

İnternet Erişimini Hızlandırmak: Proxyler, sıkça talep edilen kaynakları yerel olarak önbelleğe alarak ve veri sıkıştırması gibi teknikler kullanarak internet erişimini hızlandırabilir. Bu, büyük bir ağ üzerinde bant genişliği tüketimini azaltabilir ve kullanıcıların daha hızlı yanıt almasını sağlayabilir.

Girişim ve Ağ Güvenliği: Proxyler, ağ trafiğini izleyerek kötü amaçlı yazılımları engelleyebilir, zararlı web sitelerine erişimi engelleyebilir ve gelen ve giden verileri filtreleyebilir. Bu, ağ güvenliğini artırmak için kullanılabilir ve kuruluşların bilgi güvenliğini sağlamasına yardımcı olabilir.

Proxyler, birçok farklı protokolü destekleyebilir, en yaygın olanları HTTP, HTTPS, FTP ve SOCKS'tur. Bu protokoller, web trafiği, dosya aktarımları ve diğer ağ iletişimi türleri için proxy kullanımını sağlar.

Proxyler, birçok farklı protokolü destekleyebilir, en yaygın olanları HTTP, HTTPS, FTP ve SOCKS'tur. Bu protokoller, web trafiği, dosya aktarımları ve diğer ağ iletişimi türleri için proxy kullanımını sağlar.


pDHFoUY.png



Proxy Türleri Nelerdir?

Saydam (Transparent) Proxy Sunucuları

Ücretsiz oldukları için en çok tercih edilenler arasındadır. En büyük sıkıntısı;IP gizleme işini tam olarak gerçekleştirememesidir. Veri trafiği için de herhangi bir şifreleme yoktur.

Anonim Proxy Sunucuları

IP adresinizi gizlemek için kullanılabilen sunucular, bu konuda yüksek oranda başarı sağlayabilirler. En büyük dezavantajlarından biri ise şifreleme konusunda aynı başarıyı gösterememeleridir. Ücretsiz, trafik kotalı ve ücretli olarak tercih seçenekleri vardır.

Elit Proxy Sunucuları

IP adresinizi gizleme ve web trafiğinizi şifreleme konusunda çok başarılıdır. Sunucular arasında en güvenilir ve en hızlı bağlantı sağlayabilir. Sadece deneme süreleri ücretsiz olarak kullanılır. Özellikle şirketler bu sunucu türünü daha çok tercih etmektedir.

Bağlantı türüne göre de ise iki farklı sunucusu bulunur:

HTTP (Web) Proxy Sunucuları

Genel olarak IP adresini gizlemek ve hızlı İnternet erişimi sağlamak amacı ile kullanılır. Yalnızca web sitelerinin ziyaretinde kullanılabilir. HTTP protokolü dışında hiçbir protokole bağlanmayı sağlamaz. Engellenen sitelere bağlanmak için en çok tercih edilen sunucu türüdür. Anonim, transparen ve elit değişik biçimleri kullanılabilir.

SOCKS Proxy Sunucuları

HTTP sunucularına göre çalışması daha yavaştır. SMTP ve FTP gibi sunucuları destekler. Yavaş çalıştığı için gerçek zamanlı çevrimiçi oyun oynamak için uygun değildir. SMTP desteğine rağmen, e-posta trafiği için kullanılması tavsiye edilmez

Alıntı: Proxy Nedir? Proxy Ne İşe Yarar? | Millenicom Blog


pDHFoUY.png


HTTP Proxy Nasıl Çalışır?

İstemci İsteği: İstemci (genellikle bir web tarayıcısı), bir web sitesine erişmek için bir HTTP isteği yapar.
İsteğin içerisinde hedef web sitesinin URL'si ve isteğin türü (GET, POST, vb.) bulunur.


Proxy Sunucu İstemi Alır: İstemci, isteği belirtilen proxy sunucusuna gönderir. Bu, istemcinin ağ yapılandırmasında belirtilmiş bir HTTP proxy sunucusudur.
İstemci, isteği doğrudan hedef sunucuya değil, proxy sunucusuna gönderir.

Proxy Sunucusu İsteği Alır ve İşler: Proxy sunucusu, isteği alır ve isteğin hedef web sitesine yönlendirilmesi için gerekli işlemleri yapar. Proxy sunucusu, isteğin içeriğini ve başlıklarını kontrol edebilir, kimlik doğrulaması yapabilir veya içeriği önbelleğe alabilir.

Hedef Sunucuya Yönlendirme: Proxy sunucusu, işlediği isteği hedef web sitesine (örneğin, bir web sunucusuna) iletmek için bir HTTP isteği yapar.
Bu istek, hedef sunucunun URL'sini, isteğin türünü ve isteğe eklenen herhangi bir veriyi içerir.

Hedef Sunucudan Yanıt Alınır: Hedef sunucu, proxy sunucusuna isteği işler ve isteğe yanıt verir.
Yanıt genellikle istemcinin isteğine uygun bir HTTP yanıtıdır (200 OK, 404 Not Found, vb.).

Proxy Sunucusu Yanıtı Alır ve İşler: Proxy sunucusu, hedef sunucudan gelen yanıtı alır ve gerektiğinde işler.
Yanıtı istemciye iletmek için gerekli kontrolleri yapabilir ve gerekirse yanıtı önbelleğe alabilir.


İstemciye Yanıt İletilir: Proxy sunucusu, hedef sunucudan gelen yanıtı alır ve bunu istemciye iletmek için gereken HTTP yanıtını oluşturur.
Bu yanıt, hedef sunucunun yanıtının bir parçasıdır ve istemciye gönderilir.
Kısaca:
j16hxqo.jpg


Ve dönüt içinde aynı yol izlenir.

pDHFoUY.png


NET/HTTP İle HTTP Proxy Kullanımı

Ruby:
require 'net/http'

# Proxy bilgileri
proxy_address = '202.131.65.110'
proxy_port = 80

# Hedef URL
url = URI::HTTP.build(host: 'example.com', path: '/')

# HTTP isteği oluşturma
request = Net::HTTP::Get.new(url)

# Proxy ayarları
http = Net::HTTP.Proxy(proxy_address, proxy_port).new(url.host, url.port)
http.use_ssl = (url.scheme == 'https')

# Proxy üzerinden istek yapma
response = http.request(request)

puts response.body

require 'net/http': Kodun başında, net/http kütüphanesini kullanacağımızı belirtir. Bu kütüphane, HTTP isteklerini yapmak ve yanıtları işlemek için kullanılır.

proxy_address ve proxy_port: HTTP proxy'nin adresi ve port numarası olarak tanımlanır. Bu bilgiler, proxy üzerinden istek yaparken kullanılacak olan proxy'nin konfigürasyonunu belirler.

url: Hedef URL, URI::HTTP.build metodu kullanılarak oluşturulur. Bu URL, example.com ana bilgisayarına yapılan bir HTTP isteğini temsil eder.

request: HTTP isteği, Net::HTTP::Get.new(url) ile oluşturulur. Bu istek, hedef URL'deki belirli bir kaynağı almak için GET metodunu kullanır.

http: HTTP bağlantısı, proxy ayarlarıyla oluşturulur. Net::HTTP.Proxy(proxy_address, proxy_port).new(url.host, url.port) ifadesiyle bir HTTP bağlantısı oluşturulur. Eğer URL şeması HTTPS ise, http.use_ssl = true ile SSL kullanımı etkinleştirilir.

response: HTTP isteği, oluşturulan HTTP bağlantısı üzerinden http.request(request) ile gönderilir. Bu, isteğin proxy aracılığıyla hedef sunucuya gönderilmesini sağlar. Ardından, response değişkenine yanıt atanır.

puts response.body: Yanıtın gövdesi, response.body kullanılarak konsola yazdırılır. Bu, hedef URL'den alınan içeriğin ekrana basılmasını sağlar.
Ücretsiz Proxy için kullanabilirsiniz: Get Unlimited Residential Proxies for $6 | Geonode

Eğer Proxy bağlantınız kullanıcı adı ve şifre ile korunuyorsa:
Ruby:
require 'net/http'

# Proxy bilgileri
proxy_address = '202.131.65.110'
proxy_port = 80
username = 'username'
password = 'password'

# Hedef URL
url = URI::HTTP.build(host: 'example.com', path: '/')

# HTTP isteği oluşturma
request = Net::HTTP::Get.new(url)

# Proxy ayarları
http = Net::HTTP.Proxy(proxy_address, proxy_port, username, password).new(url.host, url.port)
http.use_ssl = (url.scheme == 'https')

# Proxy üzerinden istek yapma
response = http.request(request)

puts response.body


pDHFoUY.png


Proxy İsteğin İncelenmesi

stzcfhj.png


bp5o52i.png


pDHFoUY.png


Okuyan herkese teşekkür ederim.

İyi forumlar!
Ellerine sağlık dost
 

yosabe06

Üye
19 Ağu 2016
73
33
Konu güzel fakat web exploit geliştirme kulübünün ilk konusunda bug bulunan bir scripte get atıp, parse eden bir program yazmak daha mantıklı olurdu diye düşünüyorum.
 
Ü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.