Web Uygulama Sızma Testlerinde HTTP PUT Metod Kullanımının Tespiti

0
2027
views
HTTP PUT metodu hedef sunucuya veri göndermek için kullanılan tekniklerden biridir. PUT metodu kullanılarak yetkisiz ve kontrolsüz bir şekilde zararlı bir dosya içeriğinin sunucuya gönderilebilmesi zafiyete sebep olabilmektedir. Bu yazıda SickOS: 1.2 sanal makinesinde PUT metodunun tespit edilme yöntemleri incelenecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Yazıda kullanılan SickOs: 1.2 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/sickos-12,144/

Not: Sanal makine kullanmak yerine aşağıdaki betikle de bir web hizmeti başlatılabilir.

https://gist.githubusercontent.com/codification/1393204/raw/3fd4a48d072ec8f7f453d146814cb6e7fc6a129f/server.py

PUT metodu ile sunuculara veri (genellikle de dosya) atılmak için kullanılır. POST gibi metodlardan farklı olarak gönderilen bu veri (katar veya dosya) ile hedef sunucuya dosya gönderilir. Gönderilen dosya ile aynı isimde bir dosya varsa da üzerine yazar, yoksa belirtilen isimde ve içerikteki dosya oluşturulur. PUT metodu sunucuda genel olarak açık olabileceği gibi belirli bir dizinde de açık olabilir. SickOSv2 sanal makinesinde çalışan web uygulamasının “/test/” dizininde dizin geziniminin (Directory Traversal) açık olduğu görülmektedir. Bu durum, “/test/” dizinine atılan dosyaların çağırılması için kullanılabilir.

nmap -Pn -n -p80 -sV –script http-enum –script-args http-enum.displayall 172.20.50.134 –script-args path=test

 

HTTP PUT metodunun tespiti için temel yöntemler aşağıdaki gibidir.

 

1) Telnet Aracı

Telnet aracı kullanılarak OPTIONS metodu çağırılarak desteklenen metodların listesi elde edilebilir.

telnet 172.20.50.134 80
OPTIONS /test/ HTTP/1.1

 

Mevcut uygulamada HTTP/1.1 için sonuç elde edilemediği, HTTP/1.0 için metod listesinin elde edilebildiği görülmektedir.

telnet 172.20.50.134 80
OPTIONS /test/ HTTP/1.0

 

2) Nmap Aracı

Nmap aracının http-methods betiği ile (varsayılan olarak) kök dizininde veya belirtilen dizininde desteklenen metodlar listelenebilir.

nmap -Pn -n -sV -p80 172.20.50.134 –script http-methods –script-args url-path=’/test/’

 

3) Curl Aracı

Curl aracı kullanılarak OPTIONS metodu çağırılarak desteklenen metodların listesi elde edilebilir.

curl -i -X OPTIONS -v http://172.20.50.134/test

 

4) Diğerleri

Mevcut sanal makinede çalışmamış olsa da Nikto aracı ile de PUT ve benzeri metodların listesi elde edilebilirdi.

nikto -h http://172.20.50.134/test

Nessus uygulamasına ait aşağıdaki eklentiler ile de PUT ve benzeri metodların listesi elde edilebilir.

  • 10498: Web Server HTTP Dangerous Method Detection
  • 43111: HTTP Methods Allowed (per directory)

Netsparker uygulaması (veya diğer web uygulama tarayıcıları) ile de PUT ve benzeri metodların listesi elde edilebilir.

Bu sanal makinede WebDav etkindir. Ancak yapılandırma dosyasındaki ayarlar sebebi ile Davtest aracı ile tespit gerçekleştirilememektedir. Bu ayar etkin olmasa idi Davtest aracı ile de PUT ve benzeri metodların listesi elde edilebilirdi.

davtest -url http://172.20.50.134/test/

 

Kaynaklar:

http://www.hackingarticles.in/5-ways-to-exploiting-put-vulnerability/
https://www.arashparsa.com/2016/04/27/sickos1.2-walkthrough
https://volta-sec.blogspot.com.tr/2016/10/vulnhub-sickos-12.html
http://ramstersec.blogspot.com.tr/2016/04/sickos12-walkthrough_29.html

 

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.