- 15 Ocak 2019
- 303
- 71
Selam arkadaşlar, bugün sizlerle beraber Os Command zafiyetlerini işleyeceğiz. Öncelikle bu durum back end tarafından kullanıcıdan alınıp işlenen verilerin manipüle edilip saldırganın kendi sorgularını çalıştırması ile meydana gelir. Daha çok karşınıza uzaktan ping gönderme, online proxy sitelerinden veri gönderme veya pdf indirme gibi kısımlardan meydana gelir.
Benim başıma üyelik formundan bile geldiği olmuştu. Bunun için şöyle bir görsel bırakmak isterim kimi olayla ilgili kimi olaydan bağımsız lakin umarım işinize yarar
Ufak bir e-mail bazlı trick olsun, şimdi ise konumuza geçelim, bu tür olaylarda varsayılan bir sunucuda komut gönderme olayı vardır, biz ise bunu bypass etmeye çalışacağız. Eğer sunucu linux tabanlı ise ping -c 2 dreambully.com gönderdiğini düşünelim. Biz ise bu çalışan kodu back end üzerinde silip işlem yapamayız ama bu kodun üzerinde kod yazdırabiliriz. Bunun için ;
ping -c 2 dreambully.com && ls -lah komutunu verirsem hem ping görevini yerine getirecek hemde benim komutumu çalıştırmış olacaktır. Test için & && | || $() gibi parametreler kullanabilirsiniz.
İLK OS COMMAND LAB ÖRNEĞİ
İlk labı açtım ve karşımda sadece e ticaret benzeri bir yapı çıktı id değerlerinde testlerde bulundum ki hiçbirşey çıkmıyor bende stock diye bir parametre buldum ve ilk sorguları gönderdiğimde sıkıntısız ver iletiyordu.
Açığı test etmek için storeId de verilen parametreyi silmeden testlerimi gerçekleştireceğim bunun için yukarıda yazdığım üst üste yazdırmak için kullanılabilecek basit parametrelerle denemeye başlıyorum. İlk olarak & && verdiğimde işe yaramamışken | verdiğimde ise sonuç ;
Şu anda server'da komut çalıştırabildiğim andayım ve sistem benden sistemde kim olduğu ile ilgili komutu çalıltırmamı yani whoami komutunu çalıştırmamı istiyor. Bunun için storeId=1 | whoami yazarak ilk örneği tamamlıyoruz.
İKİNCİ OS COMMAND İNJECTİON LAB
Bu labaratuar örneğinde ise sistem bizden açığın varlığını tespit edip sistem üzerinden karşı tarafa ping atmamızı istiyor. Bana verilen lab ortamına giriyorum ve stockcheck gibi parametre verebileceğim herşey kalkmış. Bunun yerine sumbit feedback var.
Yaklaşık bir 10 dakika cebelleştikten sonra e mail kısmında testler yapmak isterken | || && gibi parametreler ile server bazlı hatalar aldım, bunun için belki burdan ekmek çıkar diye düşünüyorum. Bunun için &email=[email protected]||ping -c 10 127.0.0.1|| verdiğimde komutum çalışmış oldu.
Requestin bekletme sebebi ise serverin o anda aktif olarak pinglemesi olduğundan bu lab'ı başarı ile tamamladık, bunlarla beraber server üzerinde atif yolla sistemde çalışan ip adreslerini öğrenebilir, ve bu duruma karşı testler uyguluyabilirsiniz.