Son zamanlarda, çok az sayıda şirket ve startup, izleme ve sosyal medya amacıyla özel URL kısaltma hizmetlerini kullanıyor. Bu tür URL kısaltıcılardan örnek bir bağlantı şuna benzer: invent.ge/1j1QxGo
veya invent.ge/DNATool
. Bir URL kısaltılırken hem özel kelimelerin hem de oluşturulan rastgele harfler+sayıların kullanılabileceğini unutmayın.
Bazı alan adlarına bakarken @0xkitty hata ödülleri için, dahili veya hassas URL’leri URL kısaltıcılardan çıkarmaya yönelik ilginç bir saldırı vektörü bulduk.
Spesifik yöntem, çok sayıda şirket (ve ödül sunanlar) tarafından kullanılan Bit.ly SaaS aracılığıyla bir grup potansiyel olarak hassas/veya gizli URL’yi kurtarmanın nasıl mümkün olduğunu açıklamaktadır.
X şirketi http://xyz.com URL kısaltıcı alanını kullanıyor. Bitly URL kısaltma hizmeti olup olmadığını http://xyz.com/debug adresini ziyaret ederek kontrol edebiliriz.
URL kısaltıcı Bitly tarafından destekleniyorsa bu, aşağıdakileri döndürecektir:
Artık söz konusu şirketteki personel tarafından kısaltıcı aracılığıyla oluşturulan bağlantıları bulmak için bu URL kısaltma hizmetinde bir dizin/dosya bruteforce çalıştırabiliriz.
Örneğin, dirs3arch aracını kullanarak, potansiyel olarak hassas olabilecek URL’leri bulmak için bu Bitly uç noktasını brute edebiliriz.
Aşağıdaki komutu yalnızca 2-5 dakika çalıştırdım.
Not: xyz.com yalnızca Bitly destekli URL kısaltıcının bir örneğidir, gerçek bir Bitly kısaltıcı değildir. Bitly’nin kısaltıcısını kullanan şirketlerin listelenmesini önlemek için kullanılmıştır.
root@vulnscanningyo:~/pentest/dirs3arch# python3 dirs3arch.py -u http://xyz.com/ -e php,html -t 5 -w db/dirbuster/directory-list-2.3-medium.txt -x 403 2>&1 | tee results1.txt
Daha sonra tüm geçerli sonuçları filtrelemek için şu basit python betiğini kullanabiliriz:
with open("results1.txt","r") as fp:
for line in fp:
if "106B" not in line:
print line
Yukarıdaki betiği çalıştırmak aşağıdaki sonuçları döndürdü:
[03:31:05] 302 - 189B - /10 -> http://xyz-long-url.com/10?geo=global&utm_medium=social_organic&utm_source=all&utm_campaign=xyz10
[03:31:06] 410 - 9KB - /login.php
[03:31:06] 302 - 124B - /events -> https://www.xyz-long-url.com/community/events
[03:31:11] 302 - 123B - /copyright -> http://www.xyz-long-url.com/help/article/263
[03:31:11] 302 - 165B - /subscribe -> https://www.xyz-long-url.com/your/account/email?ref=fp_ln_emails&action=edit_lists
[03:31:13] 302 - 183B - /library -> https://docs.google.com/a/xyz-long-url.com/forms/d/1q_U1_cxt6OMrDupANfcb4btNN_xxxxxxxxxxx/viewform
[03:31:16] 302 - 113B - /mobile -> http://www.xyz-long-url.com/mobile
[03:31:16] 302 - 123B - /policy -> http://www.xyz-long-url.com/help/article/483
[03:31:21] 302 - 116B - /post -> http://xyz-long-url.com/promos/xyz/
[03:31:22] 302 - 119B - /FAQ -> https://www.xyz-long-url.com/help/topics
[03:31:25] 302 - 113B - /local -> https://www.xyz-long-url.com/local
[03:31:28] 302 - 173B - /policies -> http://www.xyz-long-url.com/blog/en/2012/service-tips-for-sellers-creating-policies-that-work/
[03:31:28] 410 - 9KB - /wp-login.php
[03:31:29] 302 - 145B - /development -> https://jira.xyz-long-url-internal.com/confluence/display/AV/XYZ+Development
Bu basit kötüye kullanım yöntemiyle saldırı kapsamımızı genişletebildik ve XYZ şirketinin dahili URL’leri hakkında biraz bilgi edinebildik. 3-5 dakikalık hızlı kaba kuvvette bulunan bazı URL’ler aynı zamanda Google Doküman formlarını ve muhtemelen diğer bulunması zor/hassas bağlantıları da içeriyordu.
Aynı yöntemi diğer URL kısaltıcılara uygulamak da işe yarayacaktır, ancak bunlar sizi derecelendirmeye sınırlayabilir, bu nedenle mümkün olduğunca körü körüne ayıklamak için proxy kullanmanız gerekebilir.
Bunun, saldırı kapsamını genişletmenin başka bir harika hilesi/yolu olduğunu düşündüm, bu yüzden bunun bir blog yazısına layık olduğunu hissettim. Bu gönderiyi beğendiyseniz merhaba deyin @infosec_au Ve @0xkitty Twitter’da 🙂