Blog (13)
Komentarze (67)
Recenzje (0)
@paszczak000Skaner aplikacji webowych

Skaner aplikacji webowych

25.03.2010 17:14

W ostatnim czasie firma Google wypuściła w świat aplikację o nazwie [URL=http://code.google.com/p/skipfish/]Skipfish[/URL]. Miło jest również wspomnieć, że autorem programu jest [URL=http://lcamtuf.coredump.cx/]Michał Zalewski[/URL] znany jako lcamtuf – polski haker. Jest to automatyczny skaner bezpieczeństwa aplikacji webowych. Aplikacja pomaga w wyszukiwaniu potencjalnych luk na stronach internetowych. Skipfish potrafi współpracować z wieloma istniejącymi frameworkami aplikacji webowych.

Do swojego działania wykorzystuje [URL=http://pl.wikipedia.org/wiki/Heurystyka_%28informatyka%29]heurystykę[/URL]. Automatycznie generuje różnego rodzaju słowniki, uzupełnia formularze na stronach internetowych oraz wykorzystuje różne metody ataków do sprawdzenia potencjalnych luk na stronie.

Aplikacja została napisana w C i bardzo dobrze zoptymalizowana. Działa bardzo szybko. Nie obciąża naszego systemu operacyjnego. Potrafi nawet osiągnąć wydajność rzędu 2000 requestów na sekundę. Wielu uważa, że w ten sposób aplikacja może wykonać atak [URL=http://pl.wikipedia.org/wiki/DoS]DoS[/URL] na serwer.

Skipfish dostępny jest na takie środowiska jak Linux, FreeBSD 7.0+, MacOS X, oraz Windows ([URL=http://cygwin.com/]Cygwin[/URL]). Pobieramy źródła aplikacji i rozpoczynamy ich kompilację. Jeżeli posiadamy w systemie odpowiednie biblioteki wraz z plikami nagłówkowymi to kompilacja powinna przebiegać bez problemu.

[root@amentine src]# tar -xzf skipfish-1.25b.tgz
[root@amentine src]# cd skipfish
[root@amentine skipfish]# make
cc -L/usr/local/lib/ -L/opt/local/lib skipfish.c -o skipfish -O3 -Wno-format -Wall -funsigned-char -g -ggdb -D_FORTIFY_SOURCE=0 -I/usr/local/include/ -I/opt/local/include/  \
              http_client.c database.c crawler.c analysis.c report.c -lcrypto -lssl -lidn -lz
analysis.c: In function ‘get_date’:
analysis.c:1355: warning: format ‘%02llu’ expects type ‘long long unsigned int *’, but argument 3 has type ‘s64 *’
analysis.c:1355: warning: format ‘%02llu’ expects type ‘long long unsigned int *’, but argument 4 has type ‘s64 *’
analysis.c:1355: warning: format ‘%02llu’ expects type ‘long long unsigned int *’, but argument 5 has type ‘s64 *’

See dictionaries/README-FIRST to pick a dictionary for the tool.

Having problems with your scans? Be sure to visit:
http://code.google.com/p/skipfish/wiki/KnownIssues

[root@amentine skipfish]# 

Jeżeli wszystko poszło poprawnie, wystarczy teraz uruchomić aplikację i poczekać aż wygeneruje raport. Po uruchomieniu aplikacji poleceniem:

[root@amentine skipfish]# ./skipfish -o raport -W dictionaries/minimal.wl http://127.0.0.1/

Jeżeli wszystko wykonaliśmy prawidłowo, naszym oczom powinien pokazać się ekran, na którym widać będzie jak działa aplikacja. Jeżeli testujemy nasz lokalny serwer, możemy zajrzeć do logów i zobaczyć jakie adresy URL są wywoływane przez Shipfisha.

skipfish version 1.25b by 

Scan statistics
---------------

       Scan time : 0:00:03.0355
   HTTP requests : 4754 sent (1481.01/s), 6769.71 kB in, 1090.14 kB out (2342.03 kB/s)
     Compression : 0.00 kB in, 0.00 kB out (0.00% gain)
 HTTP exceptions : 0 net errors, 0 proto errors, 0 retried, 0 drops
 TCP connections : 53 total (120.98 req/conn)
  TCP exceptions : 0 failures, 0 timeouts, 2 purged
  External links : 67 skipped
    Reqs pending : 1658

Database statistics
-------------------

          Pivots : 325 total, 25 done (7.69%)
     In progress : 59 pending, 215 init, 8 attacks, 18 dict
   Missing nodes : 0 spotted
      Node types : 1 serv, 16 dir, 32 file, 2 pinfo, 172 unkn, 102 par, 0 val
    Issues found : 45 info, 0 warn, 3 low, 7 medium, 0 high impact
       Dict size : 2115 words (116 new), 34 extensions, 256 candidates 

Po skończonej pracy, zostanie wygenerowany raport HTML, który możecie zobaczyć na obrazku poniżej.

Wybrane dla Ciebie
Komentarze (15)