WAFP – Web Application Finger Printer
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYr7Bv8t' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Wafp, ruby ile yazılmış, sqlite3 kullanan ve bir web sitesinden aldığı bilgileri kendi database'i ile karşılaştırarak ilgili web uygulama hakkında bilgi veren ve sürüm numarasını tespit etmek üzere kullanılan bir araçtır. Penetrasyon testleri için kullanılabilecek olan wafp detayında belirttiğiniz web sitesinden aldığı veriyi bir db'ye yazar, sonrasında da elde edilen bu veriye ait checksum'ları kendi database'inde bulunanlarla eşleştirerek uygulama hakkında sürüm numarası gibi bilgileri saptar. Bu şekilde hedef uygulamanın altyapısı hakkında bilgi edinilebilir. |
Penetrasyon testerları için faydalı bir araç olan web application finger printer, ruby ve shell scriptlerden oluştuğu için sisteme ayıca kurulmaya gerek bulunmamaktadır ve tüm linux dağıtımlarında ve gerekli düzenlemeleri yaptıktan sonra BSD'ler üzerinde de çalışabilir. Yazının devamında kullanımı ile ilgili detaylı bilgi bulabilirsiniz.
http://mytty.org/wafp/ adresinden download edilebilen wafp'yi çalıştırabilmek için sisteminizde öncesinden aşağıdaki paketler yüklü olmalıdır.
- ruby >= 1.8
- sqlite3 >= 3
- sqlite3-ruby >= 1.2.4
İndirdiğiniz paketi açtığınız zaman dizin içerisindeki README ve HOWTO dosyalarında detaylı bilgiler bulunmaktadır en temel kullanım şekli ruby scriptin direk ./wafp.rb şeklinde çalıştırılmasıdır.
Not: Wafp'yi FreeBSD üzerinde çalıştırmak istiyorsanız ruby path'ini doğru şekilde belirtmeniz gerekir.
Scripti -h parametresi ile çalıştırırsanız aşağıdaki help ekranı görüntülenir.
# ./wafp.rb -h USAGE: ./wafp.rb [Options] {URL} -- -p, --product STRING a string which represents the name of the product to check for; STRING can be something like: "wordpress" -v, --pversion STRING a string which represents the versions of the product to check for; STRING can be something like: "2.2.1" or "%.2" or "1.%". -P, --dump-products STRING this will dump all products for which fingerprints are available; STRING can be something like: "%bb%" which will select all products having bb|BB in their name. -s, --store STRING write the fetched data to the database for later use; STRING is used as an identifier. -f, --fetch fetch only - do not fingerprint the app. (mostly used in conjunction with -s) -l, --list STRING list the stored data archives containing STRING. STRING is optional in this case. -d, --dry STRING perform the fingerprint on the stored data STRING instead of fetching it. -t, --threads INT this is the count of threads to use. [8] --user-agent STRING a STRING which holds the User-Agent headerfield contents. --outlines INT number of results to print. [10] --timeout INT connection timeout in seconds. [10] --retries INT maximum retries per file to fetch. [3] --any this causes wafp to fetch all files known by fingerprints of all products. --low-mem this causes wafp to NOT load the fingerprint database to the memory. --verbose turns on verbose output. --debug turns on debug output. --quiet output off - besides the final results. --dbinfo prints some database stats. --version print WAFP version and exit. -h, --help print this help and exit. EXAMPLES: ./wafp.rb -p 'wordpress' -v '2%' http://blog.example.com/ ./wafp.rb -f -t 32 -s phpmy-save01 -p 'phpmyadmin' -v '1.1.%' https://user:[email protected]/phpmyadmin/ ./wafp.rb -d phpmy-save01 -p 'phpmyadmin' -v '1.1.%'
Wafp'nin en temel kullanım şekli şöyledir:
./wafp.rb -p phpBB http://www.example.com/
Komutun çıktısı aşağıdakine benzer olacaktır:
wafp.rb --verbose -p phpmyadmin https://phpmyadmin.example.de VERBOSE: loading the fingerprint database to the ram... Collecting the files we need to fetch ... Fetching needed files (#432), calculating checksums and storing the results to the database: ............................................................................................ VERBOSE: request for "/themes/darkblue_orange/img/b_info.png" produced "Connection refused - connect(2)" for 1 times - retrying... ............................................................................................ Checking gathered/stored checksums (#432) against the selected product (phpmyadmin) versions (#87) checksums: ....................................................................................... found the following matches (limited to 10): +-------------------------------------------------------------+ phpmyadmin-2.11.9.1 296 / 299 (98.99%) phpmyadmin-2.11.9.2 295 / 299 (98.66%) phpmyadmin-2.11.9.4 295 / 299 (98.66%) phpmyadmin-2.11.8.1 295 / 299 (98.66%) phpmyadmin-2.11.9.5 295 / 299 (98.66%) phpmyadmin-2.11.8 295 / 299 (98.66%) phpmyadmin-2.11.9.3 295 / 299 (98.66%) phpmyadmin-2.11.9 295 / 299 (98.66%) phpmyadmin-2.11.4 294 / 299 (98.33%) phpmyadmin-2.11.5.2 294 / 299 (98.33%) +-------------------------------------------------------------+ WAFP 0.01-26c3 - - - - - - - - - http://mytty.org/wafp/ VERBOSE: Returncode stats: VERBOSE: Ret-Code 200 #302 VERBOSE: Ret-Code 404 #130 VERBOSE: deleting the temporary database entries for scan "472312620367191262036719_httpsphpmyadmin.example.de" ...
Ancak hedef sitenin altyapısı konusunda hiç bir fikriniz yoksa o halde -p parametresini iptal edebilirsiniz:
./wafp.rb http://www.example.com/
Son olarak, wafp'nin ana database'i utils/ isimli dizinde bulunan online_update.sh shell scripti sayesinde güncellenebilir.
Sahip olduğunuz db versiyonu için
./online_update.sh --show
Db'yi update etmek içinse
./online_update.sh --update
komutlarından yararlanabilirsiniz.
Bu yazılar da ilginizi çekebilir:
- FreeBSD Sistemlerde Kurulu Paketlerin Update Edilmesi
- Portaudit ile Kurulu Paketler için Zafiyet Takibi
- Arping – Link Layer (L2) Pinging
- Lynis ile Güvenlik Denetimi
- Yasat ile Sistem Denetimi
sağol bilgi için
[Cevapla]