Web for Pentester 2 – Randomness Issues Çözümleri

Bu yazımda Web for Pentester 2’nin Randomness Issues çözümlerini elimden geldiğince anlatmaya çalışacağım. Geliştirici tarafından uygulanan kısıtlı Random değerlerin nasıl kötü niyetli kişilerce keşfedilebileceğini ve kullanılacağını da görmüş olacağız.

Example 1

İlk örneğimizi açtığımızda bize sistemde bulunan bir kullanıcının kullanıcı adı ve parolasını veriyor. Hemen alttada bu kullanıcının nasıl oluşturulduğuna dair bir kod paylaşılıyor.

Bu kodda gözümüze çarpan new(0) metodunda “seed” değerinin 0 verilmesiyle(iki parola içinde) rastgele oluşturulacak parolaların sürekli aynı değeri vermesi gibi bir sonuç ortaya çıkıyor. Ruby kodunu biraz düzenleyip bu parolalar neymiş ekrana bastıralım.

Kodu birkaç kez çalıştırdığımızda sürekli aynı pass değerini alıyoruz. Admin kullanıcısının parolası mpvadd” olarak bulunmuş oluyor.

Example 2

Bu örnekte paylaşılan kodda gördüğümüz üzere “seed” değeri olarak şu anki zaman verilmiş. Burada her iki parola içinde seed değeri aynı olduğu için hacker kullanıcısının parolası “kuspsn” olarak atandığı anda admin kullanıcısınında parolası bulunmuş olur.

Yazacağımız bir script ile önce Current Timestamp alacağız ve birer birer azaltarak parola üreteceğiz. “kuspsn” atandığı anda işlemimiz sonlacak ve admin kullanıcısının parolasını elde edeceğiz.

Example 3

Basit bir hata ile oluşturulmuş parola atama işlemi Seed değeri aynı olduğu için hacker kullanıcısının parolası atandığı anda admin parolasını elde ediyoruz.

Example 4

Bu problemde her iterasyonda Random nesnesini yeniden oluşturduğumuzda BruteForce yöntemi ile admin kullanıcısının parolasına ulaşıyoruz.

Kısa bir süre bekledikten sonra parola ekranımızda beliriyor..

 

Başlık görseli: https://www.sciencedaily.com/releases/2012/05/120516093015.htm

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir