Hepinize selamlar!
ben turkhackteam.org Anka Red TEAM'den,
@u1ku1912
Bugün sizlere total 21 dersten teorik ve pratik olmak üzere web pentest dersinin yedinci bölümünü anlatıyor olacağım,
hazırsanız başlayalım.
Arkadaşlar bugün ki konumda Broken Access Control'u açıklayacağım,
Owasp Top 10'un gözdesidir.
Kullanıcıların yalnızca izin verilen işlemleri ve kaynakları görmesini ve kullanmasını sağlayan mekanizmadır.
Broken Access Control'un çeşitleri vardır.
IDR yani kullanıcıya ait bir verinin kimliği (ör: /user/12345/profile) değiştirilerek başkasının verisine ulaşılması.
Normal kullanıcıyken admin işlemleri yapabilmek k (ör: /admin/deleteUser?id=1)
Alt düzey bir kullanıcının üst düzey işlemleri yapabilmesi, root seviyesinde.
İlk olarak Kali Linux'u açalım.
Burp Suite'yi başlatım.
x
Daha sonra Burp Suite'de proxy, options kısmına gelelim.
Proxy Listeners kısmında 127.0.0.1:8080 girelim yeni bir port eklemek isterseniz add kısmından ekleyebilirsiniz.
Şimdi Firefox Proxy ayarlarını yapalım. Ayarlar kısmına gelip proxy yazalım
Ayarlara tıklayalım, Manuel proxy configuration HTTP Proxy: 127.0.0.1, Port kısmına ise 8080 portumuzu girelim.
(8080 portu olmaz ise, 8888 veyahut 8000 portunu kullanabilirsiniz.)
Burp Suiteye dönelim ve Proxy, İntercept kısmını açalım.
Firefox'ta herhangi bir siteye gidelim
Burp Suiteye bakalım, Burp Suite kısmında HTTPhistory kısmına baktığımızda yakaladıklarını göreceğiz.
Şuan için ortamımızı hazırlamış bulunmaktayız.
Open browser diyelim şimdi.
Şimdi hedef sitemize gidelim arkadaşlar.
Şimdi Burp Suite'ye bir bakalım.
Arkadaşlar şimdi Intercept is off yapalım. Böylece trafiğin önünde takılmadan HTTPhistory kısmına bakacağız
Şimdi kritik endpointleri kullanarak test edelim, HTTP history kısmında yapılan her isteği görmemiz lazım, status code ve lenght bilgilerini görebiliriz eğer istersek response deyip daha detaylı görebiliriz
Arkadaşlar şimdi HTTP history kısmına girelim ve tek tek inceleyelim,
/profile/1 /user/1 /orders/1 /settings /download/file.pdf=id=1 arkadaşlar 404 not found aldık. Bu endpointlere erişim denedik fakat sunucu yolunu bulamadı
/admin /dashboard 302 aldık arkadaşlar yani sunucu başka bir sayfaya yönlendiriyor üstte ki resimlerden anlaşılacağı üzere admin login sayfasına. Broken Acces Control açığı yok
/wp-admin vs. wp yolları içinde 302 veya 403 404 aldık. yine login sayfasına yönlendiriyor dışarıdan erişim yok.
/cdn-cgi/run /favicon.ico 204 404 aldık bunlar önemli endpointler değil
GET/POST isteği yaptım bunlar her sitenin kendi js harici dosya isteği güvenlik ile ilgili açık yok
Arkadaşlar şimdi /POST/PUT/DELETE işlemlerini deneyelim.
Sitede veri değiştiren, bir işlemde ID veya parametrelerle oynayıp başkasının verisine müdahale edebilecek miyiz onu göreceğiz.
Arkadaşlar siteye giriş, kayıt, veya gönderim yapabileceğimiz bir yer arıyorum.
Kısmını buldum, çok güzel.
Burp Suiteye geliyorum, intercept is on yapıyorum. Ardından open browser diyerek bulduğum adrese gidiyorum.
Arkadaşlar şimdi bu kısımı random sallayarak dolduralım, submint veya gönder butonuna basın trafik yollansın.
En alttaki post isteğine tıklıyorum arkadaşlar.
Ve doldurduğum kısımları görebiliyorum.
post_id=742
form_id=d3c5d4f
referer_title=צור קשר (İletişim)
queried_id=742
form_fields[name]=asdasd
form_fields=g[email protected]
form_fields[field_1]=3243243242342
form_fields[message]=hey
gibi kısımları doldurmuştum, burayı incelediğimde,
Kullanıcıya özel ID var, başkasının üzerinden işlem yapmak zor gibi,
post_id form_id queried_id gibi parametreler gönderilen mesaja ait arkadaşlarım.
form_gields parametreleri e-posta adresiyle değiştirip deneyebiliriz
Arkadaşlar şimdi de Cookie/Session veya Header Manipülasyonu deneyelim
Arkadaşlar şimdi Cokkie/Session yapalım, bunun için HTTP history kısmına gelelim
hedef siteye ait herhangi bir isteğe tıklayıp Request kısmından daha okunabilir olması için pretty seçelim Cookie: x... satırını bulalım
/admin /dashboard 302 aldık arkadaşlar yani sunucu başka bir sayfaya yönlendiriyor üstte ki resimlerden anlaşılacağı üzere admin login sayfasına. Broken Acces Control açığı yok
/wp-admin vs. wp yolları içinde 302 veya 403 404 aldık. yine login sayfasına yönlendiriyor dışarıdan erişim yok.
/cdn-cgi/run /favicon.ico 204 404 aldık bunlar önemli endpointler değil
GET/POST isteği yaptım bunlar her sitenin kendi js harici dosya isteği güvenlik ile ilgili açık yok
Arkadaşlar şimdi /POST/PUT/DELETE işlemlerini deneyelim.
Sitede veri değiştiren, bir işlemde ID veya parametrelerle oynayıp başkasının verisine müdahale edebilecek miyiz onu göreceğiz.
Arkadaşlar siteye giriş, kayıt, veya gönderim yapabileceğimiz bir yer arıyorum.
Kısmını buldum, çok güzel.
Burp Suiteye geliyorum, intercept is on yapıyorum. Ardından open browser diyerek bulduğum adrese gidiyorum.
Arkadaşlar şimdi bu kısımı random sallayarak dolduralım, submint veya gönder butonuna basın trafik yollansın.
En alttaki post isteğine tıklıyorum arkadaşlar.
Ve doldurduğum kısımları görebiliyorum.
post_id=742
form_id=d3c5d4f
referer_title=צור קשר (İletişim)
queried_id=742
form_fields[name]=asdasd
form_fields=g[email protected]
form_fields[field_1]=3243243242342
form_fields[message]=hey
gibi kısımları doldurmuştum, burayı incelediğimde,
Kullanıcıya özel ID var, başkasının üzerinden işlem yapmak zor gibi,
post_id form_id queried_id gibi parametreler gönderilen mesaja ait arkadaşlarım.
form_gields parametreleri e-posta adresiyle değiştirip deneyebiliriz
Arkadaşlar şimdi de Cookie/Session veya Header Manipülasyonu deneyelim
Arkadaşlar şimdi Cokkie/Session yapalım, bunun için HTTP history kısmına gelelim
hedef siteye ait herhangi bir isteğe tıklayıp Request kısmından daha okunabilir olması için pretty seçelim Cookie: x... satırını bulalım
! Arkadaşlar tüm endpointlerin çerezlerine baktım fakat böyle bir satır göremedim şimdi tekrardan admin login kısmına girip doldurdurup istek gönderdikten sonra cookie satırını arayacağım. !
Arkadaşlar login denemesi yaptım ve girdiklerim hariç şunları gördüm,
log=admin (kullanıcı adı)
pwd=12345 (şifre)
wp-submit (giriş butonu)
redirect_to (login sonrası yönlendirme)
testcookie=1 (WordPress’in çerez kontrolü)
Giriş başarılı olmadığı için wordpress_test_cookie var. Bypass yapsaydık admin login kısmında wordpress_logged_in_xxx=... veya PHPSESSID eklenirdi ve cookie manipülasyonu yapabilirdik fakat eğitim amaçlı olduğundan buraya değinmiyorum fazla. Öğrenmeniz gereken kısmı öğrendiniz
Arkadaşlar şimdi Header Manipülasyonu yapalım,
Arkadaşlar herhangi bir GET veya POST isteğine tıklayalım.
Request kısmına geçelim ve Header'e ekleyelim;
X-User-Id: 1
X-Role: admin
X-Forwarded-For: 127.0.0.1
Arkadaşlar isteği gönderdikten sonra responseu inceleyeceğiz. Admin paneli açılıyorsa açık var, 403,401 alırsam kontrol var, açık yok.
Deniyorum.
Gözüme bu kısımı kestirdim çünkü Elementor Pro plungine ait, js dosyası.(Her bir isteğe sağ tıklayıp sent to repeater diyelim), Eklemem gereken haline getirdikten sonra send diyorum dostlarım:
Arkadaşlar login denemesi yaptım ve girdiklerim hariç şunları gördüm,
log=admin (kullanıcı adı)
pwd=12345 (şifre)
wp-submit (giriş butonu)
redirect_to (login sonrası yönlendirme)
testcookie=1 (WordPress’in çerez kontrolü)
Giriş başarılı olmadığı için wordpress_test_cookie var. Bypass yapsaydık admin login kısmında wordpress_logged_in_xxx=... veya PHPSESSID eklenirdi ve cookie manipülasyonu yapabilirdik fakat eğitim amaçlı olduğundan buraya değinmiyorum fazla. Öğrenmeniz gereken kısmı öğrendiniz
Arkadaşlar şimdi Header Manipülasyonu yapalım,
Arkadaşlar herhangi bir GET veya POST isteğine tıklayalım.
Request kısmına geçelim ve Header'e ekleyelim;
X-User-Id: 1
X-Role: admin
X-Forwarded-For: 127.0.0.1
Arkadaşlar isteği gönderdikten sonra responseu inceleyeceğiz. Admin paneli açılıyorsa açık var, 403,401 alırsam kontrol var, açık yok.
Deniyorum.
Kod:
GET /wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.32.2 HTTP/2[/B][/COLOR][/CENTER][/B][/COLOR][/CENTER][/B][/COLOR][/CENTER][/B][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][B][CENTER][COLOR=rgb(255, 255, 255)][B][CENTER][COLOR=rgb(255, 255, 255)][B][CENTER][COLOR=rgb(255, 255, 255)][B][CENTER][EMAIL='=g[/B][/COLOR][COLOR=rgb(97, 189, 109)][B][email protected][/B][/COLOR][COLOR=rgb(255, 255, 255)][B]form_fields[field_1]=[/B][/COLOR][COLOR=rgb(97, 189, 109)][B]3243243242342[/B][/COLOR][COLOR=rgb(255, 255, 255)][B]form_fields[message]=[/B][/COLOR][COLOR=rgb(97, 189, 109)][B]hey[/B][/COLOR][COLOR=rgb(255, 255, 255)]gibi kısımları doldurmuştum, burayı incelediğimde, Kullanıcıya[/COLOR][COLOR=rgb(247, 218, 100)] özel ID [/COLOR][COLOR=rgb(255, 255, 255)]var, başkasının üzerinden işlem yapmak zor gibi, [/COLOR][COLOR=rgb(226, 80, 65)]post_id form_id queried_id[/COLOR][COLOR=rgb(255, 255, 255)] gibi parametreler gönderilen mesaja ait arkadaşlarım. [/COLOR][COLOR=rgb(226, 80, 65)]form_gields parametreleri[/COLOR][COLOR=rgb(255, 255, 255)] e-posta adresiyle değiştirip deneyebilirizArkadaşlar şimdi de Cookie/Session veya Header Manipülasyonu deneyelimArkadaşlar şimdi [/COLOR][COLOR=rgb(97, 189, 109)]Cokkie/Session yapalım, bunun için HTTP history kısmına gelelim[/COLOR][COLOR=rgb(255, 255, 255)] hedef siteye ait herhangi bir isteğe tıklayıp [/COLOR][COLOR=rgb(97, 189, 109)]Request kısmından[/COLOR][COLOR=rgb(255, 255, 255)] daha okunabilir olması için[/COLOR][COLOR=rgb(97, 189, 109)] pretty seçelim[/COLOR][COLOR=rgb(255, 255, 255)] [/COLOR][COLOR=rgb(226, 80, 65)]Cookie: x... [/COLOR][COLOR=rgb(255, 255, 255)]satırını bulalım[IMG size=%221920x966%22]https://i.hizliresim.com/qze5col.png[/IMG][/COLOR][/CENTER][IMG size=%221920x966%22]https://i.hizliresim.com/i6ppp7z.png[/IMG][CENTER][COLOR=rgb(255, 255, 255)][SIZE=7]! [/SIZE]Arkadaşlar tüm endpointlerin çerezlerine baktım fakat böyle bir satır göremedim şimdi tekrardan admin login kısmına girip doldurdurup istek gönderdikten sonra cookie satırını arayacağım. [SIZE=7]![/SIZE][/COLOR][IMG size=%221920x966%22]https://i.hizliresim.com/7zqdhj3.png[/IMG][IMG size=%221064x960%22]https://i.hizliresim.com/r03u6av.jfif[/IMG][COLOR=rgb(255, 255, 255)]Arkadaşlar login denemesi yaptım ve girdiklerim hariç şunları gördüm,[/COLOR][COLOR=rgb(97, 189, 109)]log=admin[/COLOR][COLOR=rgb(255, 255, 255)] (kullanıcı adı)[/COLOR][COLOR=rgb(97, 189, 109)]pwd[/COLOR][COLOR=rgb(255, 255, 255)]=12345 (şifre)[/COLOR][COLOR=rgb(97, 189, 109)]wp-submit [/COLOR][COLOR=rgb(255, 255, 255)](giriş butonu)redirect_to (login sonrası yönlendirme)testcookie=1 (WordPress’in çerez kontrolü)[/COLOR][COLOR=rgb(226, 80, 65)]Giriş başarılı olmadığı için wordpress_test_cookie var. [/COLOR][COLOR=rgb(84, 172, 210)]Bypass yapsaydık admin login kısmında wordpress_logged_in_xxx=... veya PHPSESSID eklenirdi[/COLOR][COLOR=rgb(255, 255, 255)] ve cookie manipülasyonu yapabilirdik fakat eğitim amaçlı olduğundan buraya değinmiyorum fazla.[/COLOR][COLOR=rgb(97, 189, 109)] Öğrenmeniz gereken kısmı öğrendiniz[/COLOR][COLOR=rgb(255, 255, 255)]Arkadaşlar şimdi [/COLOR][COLOR=rgb(84, 172, 210)]Header Manipülasyonu yapalım,[/COLOR][COLOR=rgb(255, 255, 255)]Arkadaşlar herhangi bir [/COLOR][COLOR=rgb(97, 189, 109)]GET [/COLOR][COLOR=rgb(255, 255, 255)]veya [/COLOR][COLOR=rgb(97, 189, 109)]POST [/COLOR][COLOR=rgb(255, 255, 255)]isteğine tıklayalım.[/COLOR][COLOR=rgb(97, 189, 109)]Request [/COLOR][COLOR=rgb(255, 255, 255)]kısmına geçelim ve Header%27e ekleyelim;[/COLOR][COLOR=rgb(226, 80, 65)]X-User-Id: 1X-Role: adminX-Forwarded-For: 127.0.0.1[/COLOR][COLOR=rgb(255, 255, 255)]Arkadaşlar isteği gönderdikten sonra responseu inceleyeceğiz. Admin paneli açılıyorsa açık var, 403,401 alırsam kontrol var, açık yok.Deniyorum.[/COLOR][CODE]GET /wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.32.2 HTTP/2Host: hayovel.co.ilSec-Ch-Ua-Platform: %22Linux%22Accept-Language: en-US,en;q=0.9Sec-Ch-Ua: %22Chromium%22;v=%22141%22, %22Not?A_Brand%22;v=%228%22User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36Sec-Ch-Ua-Mobile: ?0Accept: */*Sec-Fetch-Site: same-originSec-Fetch-Mode: no-corsSec-Fetch-Dest: scriptReferer: https://hayovel.co.il/%d7%a6%d7%95%d7%a8-%d7%a7%d7%a9%d7%a8/Accept-Encoding: gzip, deflate, brPriority: u=2
Arkadaşlar teknik olarak doğru uyguladık, arkadaşlar eklediğim response dönüş kısmı ve 200 aldık, application/js fakat burada yetki atlatma
ile ilgili birşey yok Broken Acces Control almak için benim bu işlemi /admin /dashboard/profile/1 /orders/1%27e uygulamam lazım
Arkadaşlar çok doğru bir şekilde header manipülasyonu yaptık
wordpress_sec_...
wordpress_logged_in_...
wp-settings-...
wp-settings-time-...
wordpressuser_...
wordpresspass_...
çok sayıda set-cookie var, HTTP/2 200 döndü. GET/admin HTTTP/2 yöntemiyle istek atmıştım.
Arkadaşlar konumu burada bitiriyorum, zamanla daha da detay ve ileri konulara gideceğiz, sizlere sıfırdan temel ata ata bölüp, depung ettiğim seri sonunda bambaşka seriye gireceğizve enin sonunda belirli bir seviyeye geleceksiniz.
Hepinize Esenlikler diliyorum
Gözüme bu kısımı kestirdim çünkü Elementor Pro plungine ait, js dosyası.
(Her bir isteğe sağ tıklayıp sent to repeater diyelim),
Eklemem gereken haline getirdikten sonra send diyorum dostlarım:
ile ilgili birşey yok Broken Acces Control almak için benim bu işlemi /admin /dashboard/profile/1 /orders/1%27e uygulamam lazım
Arkadaşlar çok doğru bir şekilde header manipülasyonu yaptık
wordpress_logged_in_...
wp-settings-...
wp-settings-time-...
wordpressuser_...
wordpresspass_...
çok sayıda set-cookie var, HTTP/2 200 döndü. GET/admin HTTTP/2 yöntemiyle istek atmıştım.
Arkadaşlar konumu burada bitiriyorum, zamanla daha da detay ve ileri konulara gideceğiz, sizlere sıfırdan temel ata ata bölüp, depung ettiğim seri sonunda bambaşka seriye gireceğizve enin sonunda belirli bir seviyeye geleceksiniz.
Hepinize Esenlikler diliyorum
Kod:
Host: hayovel.co.il
Sec-Ch-Ua-Platform: "Linux"
Accept-Language: en-US,en;q=0.9
Sec-Ch-Ua: "Chromium";v="141", "Not?A_Brand";v="8"
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Sec-Ch-Ua-Mobile: ?0
Accept: */*
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: צור קשר – מקיף היובל הרצליה
Accept-Encoding: gzip, deflate, br
Priority: u=2
Gözüme bu kısımı kestirdim çünkü Elementor Pro plungine ait, js dosyası.
(Her bir isteğe sağ tıklayıp sent to repeater diyelim),
Eklemem gereken haline getirdikten sonra send diyorum dostlarım:
Arkadaşlar teknik olarak doğru uyguladık,
arkadaşlar eklediğim response dönüş kısmı ve 200 aldık,
application/js fakat burada yetki atlatma ile ilgili birşey yok Broken Acces Control almak için benim bu işlemi
/admin
/dashboard
/profile/1
/orders/1'e uygulamam lazım
Arkadaşlar çok doğru bir şekilde header manipülasyonu yaptık
wordpress_sec_...
wordpress_logged_in_...
wp-settings-...
wp-settings-time-...
wordpressuser_...
wordpresspass_... çok sayıda set-cookie var,
HTTP/2 200 döndü. GET/admin HTTTP/2 yöntemiyle istek atmıştım.
Arkadaşlar konumu burada bitiriyorum, zamanla daha da detay ve ileri konulara gideceğiz,
sizlere sıfırdan temel ata ata bölüp, depung ettiğim seri sonunda bambaşka seriye gireceğiz
ve enin sonunda belirli bir seviyeye geleceksiniz.
Hepinize Esenlikler diliyorum
arkadaşlar eklediğim response dönüş kısmı ve 200 aldık,
application/js fakat burada yetki atlatma ile ilgili birşey yok Broken Acces Control almak için benim bu işlemi
/admin
/dashboard
/profile/1
/orders/1'e uygulamam lazım
Arkadaşlar çok doğru bir şekilde header manipülasyonu yaptık
wordpress_sec_...
wordpress_logged_in_...
wp-settings-...
wp-settings-time-...
wordpressuser_...
wordpresspass_... çok sayıda set-cookie var,
HTTP/2 200 döndü. GET/admin HTTTP/2 yöntemiyle istek atmıştım.
Arkadaşlar konumu burada bitiriyorum, zamanla daha da detay ve ileri konulara gideceğiz,
sizlere sıfırdan temel ata ata bölüp, depung ettiğim seri sonunda bambaşka seriye gireceğiz
ve enin sonunda belirli bir seviyeye geleceksiniz.
Hepinize Esenlikler diliyorum
Son düzenleme:




