[Java] Project: web.de generator

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von unix, 27. Oktober 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Oktober 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Project: web.de generator

    Hey, da der web.de generator von B0B nicht mehr funzt (werden nun vom System erkannt), dachte ich mir, dass ich mal nen neuen code, der dann hoffentlich funzt ^^

    Ich denk mal das B0B seiner nicht mehr funzt, weil der beim reggen immer nen gleichen Namen eingegeben hat.

    Wahrscheinlich wissen die jetzt das des ein Generator ist, der immer mit dem gleichen namen etc. nen acc. erstellt.

    Ich hab vor nen Generator mit 5 verschiedenen Namen zu machen und da macht er dann einmal komplett random durch ^^ (name, vorname, plz etc).

    Die Oberfläche vom tool ist schon fertig, jetzt fehlen mir nur ein paar Ansätze und Hilfestellungen zum Eingemachten ^^

    Hier mal schnell ein Screen und der Code:

    Bild

    Code:
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.GridLayout;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.StringSelection;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingConstants;
    
    public class webgen implements ActionListener, MouseListener {
     public static void main(String[] args) {
     new webgen().OpenFrame();
     }
     String nachname[]= {"Heinz","Hermann","Schumacher","Meier","Mustermann"};
     String vorname []= {"Michael","Günther","Siegfried","Heinrich","Dieter"};
     String straße []= {"Musterstraße 3","Leinigerstraße 5","Berliner Str 4","Frankfurter Str. 10","Lupinenstraße 119"};
     String plz []= {"78912","34792","12576","47623","45882"};
     String Stadt []= {"Frankfurt","München","Dortmund","Berlin","Hamburg"};
     JFrame sFrame;
     JPanel panel1 = new JPanel();
     JPanel panel2 = new JPanel();
     JPanel panel3 = new JPanel();
     JPanel panel4 = new JPanel();
     JPanel panel5 = new JPanel();
     JPanel panel6 = new JPanel();
     JPanel panel7 = new JPanel();
     JButton copy = new JButton ("c");
     JButton copy2 = new JButton ("c");
     JTextField captcha = new JTextField("",20);
     JButton start = new JButton ("create");
     JTextField loginname = new JTextField ("");
     JTextField loginpass = new JTextField ("");
     final Clipboard clipboard = loginname.getToolkit().getSystemClipboard();
     final Clipboard clipboard2 = loginpass.getToolkit().getSystemClipboard();
     ImageIcon icon = createImageIcon("img.C3FB59F8CE903AE2DD2D6DCF49848631.a01a02d40t11_-1431016742.jpg","");
     JLabel captchabild = new JLabel (icon);
     JLabel login2 = new JLabel ("Login:");
     JLabel login3 = new JLabel ("Pass :");
    
     /** Returns an ImageIcon, or null if the path was invalid. */
     protected ImageIcon createImageIcon(String path,String description) {
     java.net.URL imgURL = getClass().getResource(path);
     if (imgURL != null) {
     return new ImageIcon(imgURL, description);
     } else {
     System.err.println("Couldn't find file: " + path);
     return null;
     }
     }
     void OpenFrame(){
     sFrame = new JFrame("web.de Gernerator by unix");
     sFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     sFrame.setSize (250,250);
     sFrame.setLayout(new GridLayout(5,1));
     sFrame.add(panel1);
     sFrame.add(panel2);
     sFrame.add(panel3); 
     sFrame.add(panel5);
     getcaptcha();//Captcha holen 
     panel1.add(captchabild); //captcha anzeigen
     captchabild.setToolTipText("Hier steht das einzugebende Captcha");
     panel2.add(captcha);
     panel3.add(start);
     start.addActionListener(this);
     captcha.setHorizontalAlignment(SwingConstants.CENTER);
     panel5.setLayout(new BorderLayout());
     panel5.add(BorderLayout.WEST,panel4);
     panel5.add(BorderLayout.CENTER,panel6);
     panel5.add(BorderLayout.EAST,panel7);
     panel4.setLayout(new GridLayout(2,1));
     panel6.setLayout(new GridLayout(2,1));
     panel7.setLayout(new GridLayout(2,1));
     panel4.add(login2);
     panel4.add(login3);
     panel4.setSize(50,30);
     panel6.add(loginname);
     panel6.add(loginpass);
     panel7.add(copy);
     panel7.add(copy2);
     copy.addMouseListener(this);
     copy2.addMouseListener(this);
     panel5.setVisible(false);
     sFrame.setVisible(true);
     }
     
     void getcaptcha(){
     /**
     Socket zum Server öffnen und Captcha Bild zurückgeben, Socket offen lassen für weiteres Verfahren**/
     
     }
     
     void createacc(){
     /**POST Data inc. Captchacode: Die generierten Daten werden per POST Befehl in das Formular eingetragen und es wird dann
     * die Methode
     * clear_step1();
     * aufgerufen um die Registrierung abzuschließen!
     * Die Methode wird normalerweise durch einen Buttonclick auf der website von web.de aufgerufen
     */
     }
     
     public void actionPerformed(ActionEvent arg0) {
     final String buttonclick = arg0.getActionCommand();
     if (buttonclick.equals("create")){
     createacc();
     loginname.setText("56dgh78fgh@web.de");
     loginpass.setText("k85jgu5t");
     panel5.setVisible(true);
     }
     }
     @Override
     public void mouseClicked(MouseEvent arg0) {
     final Component x = arg0.getComponent();
     if(x.equals(copy)){
     String selection = loginname.getText();
     StringSelection data = new StringSelection(selection);
     clipboard2.setContents(data, data);
     
     }
     if(x.equals(copy2)){
     String selection = loginpass.getText();
     StringSelection data = new StringSelection(selection);
     clipboard2.setContents(data, data);
     }
     }
     @Override
     public void mouseEntered(MouseEvent arg0) {
     // TODO Auto-generated method stub
     
     }
     @Override
     public void mouseExited(MouseEvent arg0) {
     // TODO Auto-generated method stub
     
     }
     @Override
     public void mousePressed(MouseEvent arg0) {
     // TODO Auto-generated method stub
     
     }
     @Override
     public void mouseReleased(MouseEvent arg0) {
     // TODO Auto-generated method stub
     
     }
    
    }
    
    
    So und ich hab noch Stress mit den 2. Methoden getcaptcha() und createacc().

    Zuerst muss ich ja ein Socket zum web.de Server aufbauen:
    Code:
    Socket socket = new Socket(217.72.195.42, 80);
    Danach komm ich mit den POST Befehlen nicht ganz klar, hab schon nen 2. Thread offen, der wird aber jetzt geschlossen und möchte mich auf dieses Projekt konzentrieren.!

    So die verbindungs steht nun zum web.de Server, jetzt muss ich dem noch die richtige URL übergeben zum Acc. erstellen.:

    WEB.DE - E-Mail-Adresse kostenlos, FreeMail, De-Mail & Nachrichten

    Jetzt muss ich erst den Socket aufmachen, dann den Captcha da rausholen, anzeigen lassen und dann per Post Befehl nochmal die ganzen Scheiß Daten in die gleiche Session mit web.de übertragen.

    Ich denk mal das mit der Session wird so erledigt, indem man den Socket nicht schließt sondern bis zum Schluss verwendet.!

    Hier mal die variablen vom Quelltext von der web.de Registrierung:

    Ich hab mir überlegt, um den Captcha einzulesen (brauch ja den Grafiklink) könnt ich den Socket zu der URL öffnen und dann von dem was vom Server zurück kommt, mit BufferedReader.readLine(435) die Zeile 435 auslesen (da steht der Captcha Link drinn)
    und dann mit eienr MEthode aus dieser zeile die URL des Captchas auslesen und so dann ausgeben?
    // Das Captcha Bild im Screen, den hab ich so eingefügt um zu sehen wie es mal aussehen soll ^^

    Falls einer Kritik oder Vorschläge hat, immer her damit
     
  2. 27. Oktober 2009
    AW: Project: web.de generator

    Wenn du das so machst funktioniert das Tool vllt. mal nen paar Tage^^ Denn so eine Zeilennummer kann sich schnell mal ändern. Filter die Addresse lieber mit nem Regex raus, das ist einfach und zuverlässig.
     
  3. 28. Oktober 2009
    AW: Project: web.de generator

    Hey,

    so ich hab mal ein Stück weiter gearbeitet!!!:::

    Ich denk mal mein Post Befehl für die Eingabe der Daten ist jetzt fertig:

    Code:
     try {
     printout = new DataOutputStream(urlConn.getOutputStream());
     String data = "step1:salutation=" + URLEncoder.encode("Mann")
     + "&step1:prename=" + URLEncoder.encode(ranprename())
     + "&step1:name=" + URLEncoder.encode(ranname())
     + "&step1:streetNo=" + URLEncoder.encode(ranstreet())
     + "&step1:plz=" + URLEncoder.encode(ranplz())
     + "&step1:city=" + URLEncoder.encode(rancity())
     + "&step1:secAnswer=" + URLEncoder.encode(ranprename())
     + "&step1:dateOfBirth.day=" + URLEncoder.encode(randay())
     + "&step1:dateOfBirth.month="
     + URLEncoder.encode(ranmonth())
     + "&step1:dateOfBirth.year=" + URLEncoder.encode(ranyear())
     + "&step1:username=" + URLEncoder.encode(usr)
     + "&step1:passwd=" + URLEncoder.encode(passwort)
     + "&step1:passwd2=" + URLEncoder.encode(passwort)
     + "&step1:captcha=" + URLEncoder.encode(captcha.getText());
     printout.writeBytes(data);}
    So jetzt hab ich noch Stress mit
    • Dem Einlesen des Captchas für die Ausgabe im Frame
    • Dem Aufrufen der Methode clear_step1(); die laut dem quelltext der website für das absenden der Registrierung zuständig ist

    Der Captchalink ist im quelltext so angegeben:

    Also lautet der link
    Code:
    src="/Captcha/img.67903A39A613B5616210DF1FDCA2352D.a01a02d40t12_-634072870.jpg;jsessionid=67903A39A613B5616210DF1FDCA2352D.a01a02d40t12?id=67903A39A613B5616210DF1FDCA2352D.a01a02d40t12_-634072870"
    Mein Programm kann diesen Link auch schon auslesen, jedoch hab ich noch Stress mit dem Anzeigen!

    Und wenn ich den Link ink. dem vorhergehenden WEB.DE - E-Mail-Adresse kostenlos, FreeMail, De-Mail & Nachrichten öffne, kommt Forbidden 403!
    Aber wenn ich den Link im Quelltext anklicke (Firefox ftw) zeigt ers mir an!!!
    Wenn ich den Grafiklink vom Captcha kopiere und dann im FF einfüge, zeigt der mir auch Forbidden an, ich denk mal des liegt an der Session!
    Aber der link wird doch mit der gleichen Session geöffnet, also sollte es eig. doch gehen?
     
  4. 28. Oktober 2009
    AW: Project: web.de generator

    übergibtst du irgendwelche Session oder Cookie Daten?
     
  5. 28. Oktober 2009
    AW: Project: web.de generator

    Ähm nein,

    Ich bau die verbindung zu der URL auf und da krieg ich ja scho eine Session zugewiesen!
    Und diese Verbindung baue ich im Programm nicht ab!!!! Also solte meine Session die ganze Zeit gleich bleiben!(bis halt zum Timeout von 20 Minuten glaub ich)

    Versuchs mal selbst, geh mal auf WEB.DE - E-Mail-Adresse kostenlos, FreeMail, De-Mail & Nachrichten,

    Wenn du da Rechtsklick auf den Captcha machst und Grafik anzeigen, zeigt ers dir an etc, aber wenn du den Link ausm Quelltext rauskopierst, und dann anzeigen lassen willst, gehts nicht!

    Obwohl es der gleiche Link ist!
     
  6. 28. Oktober 2009
    AW: Project: web.de generator

    falsch, die verbindung wird abgebaut wenn die übertragung beendet wurde. d.h. du hast den socket zwar noch offen, aber der server hat sich nach der response verabschiedet.

    du musst dir die cookies speichern, bei der nächsten anfrage nochmal einen socket öffnen (ggf. den aktuellen nochmal) und alle cookies mitsenden. nur dann sollte das funktionieren.

    schau dir mal die headers an, wenn du "rechsklick->grafik anzeigen" wählst wird der beim laden verwendete request nochmal gesendet. wenn du den link kopierst, wird ein neuer request (ohne alle cookies usw.) gestartet.
     
  7. 28. Oktober 2009
    AW: Project: web.de generator

    Danke für deine Hilfe,

    Hier hab ich ne Anleitung gefunden, die mir erklärt wie man mit Java die Cookies etc. auslesen tut.!

    HOW-TO: Handling Cookies Using the java.net API

    Da steht ich soll im Header nach "Set-Cookie" suchen und deren Werte dann halt als variablen abspeichern.

    Aber im Quelltext von der Registrierungsseite gibts keinen String "Set-Cookie"!
    Also muss ich des ja über die Session IDs machen.
    Ausm Quelltext les ich dann die ID aus und speichere sie in einem String "sessionstring"

    Den String muss ich dann beim Acc. erstellen per Post Befehl ebenfalls mitschicken oder?

    BSP:

    Code:
    String data = [COLOR="Red"]"jsessionid=" + URLEncoder.encode(sessionstring)[/COLOR]
     + "step1:salutation=" + URLEncoder.encode("Mann")
     + "&step1:prename=" + URLEncoder.encode(ranprename())
     + "&step1:name=" + URLEncoder.encode(ranname())
    Gut, dann wird beim Registrieren, die SessionID mitgeschickt und der eingegebene Captcha sollte noch gültig sein (hoff ich doch).

    Aber wieso kann ich den Captcha nicht richtig anzeigen!?

    Ich bau ne Verbindung auf, scanne den einkommenden Quelltext nach dem pic Link und speichere den in nem String ab.

    Der baut die Session auf, ich hol mir den CaptchaBildLink, dann wird die Session wieder geschlossen.

    Aber beim anzeigen vom Bild, geb ich ja die SessionID mit!

    Hier mal ein Link von dem Captcha mit SessionID!: *die kriegt man auch so ausm Quelltext raus, nur da steht die SessionID 2 mal hintereinander drin? xD

    Code:
    http://www.user.web.de/Captcha/img.2F3D2AE0139B0CD2E8BC4E23E80CDAFA.a01a02d40t12_848773531.jpg;jsessionid=2F3D2AE0139B0CD2E8BC4E23E80CDAFA.a01a02d40t12
     
  8. 28. Oktober 2009
    AW: Project: web.de generator

    Ja im Großen und Ganzen hab ich des jetzt kapiert!

    Und den Socket lass ich die ganze zeit offen!

    Aber ich kapier nicht, wieso der Captcha nicht angezeigt wird, obwohl ich die SessionID mitschicke!

    normal müsst der sehen, aha die SessionID ist noch gültig und mir dann das Bild zeigen.
     
  9. 29. Oktober 2009
    AW: Project: web.de generator

    Murdoc hat dir doch schon nen tipp gegeben. Lass nen Netzwerkanalyzer laufen und schau, welche daten im Header übergeben werden. Einmal bei "bild anzeigen" und einmal beim direkten aufruf.
     
  10. 29. Oktober 2009
    AW: Project: web.de generator

    Du hast da was falsch verstanden. Mit dem "Header" ist nicht der <head>-Bereich der Seite gemeint sondern die mitgeschickten HTTP-Header vom Server. Das sieht ungefähr so aus:

    Code:
    HTTP/1.1 200 OK
    Server: Apache 1.2.3.4 blabla
    [B]Set-Cookie:[/B] CookieName=CookieWert; Max-Age=3600; Version=1
    weitere header
    
    hier der content
     
  11. 29. Oktober 2009
    AW: Project: web.de generator

    Und wenn ich den Cookie hab, wie könnt ich den dann an den Bildlink anhängen um den richtig darzustellen?

    Und da der scheiß über https übertragen wird, zeigt mit Wireshark nur verschlüsselte Daten an iwie:
     
  12. 29. Oktober 2009
    AW: Project: web.de generator

    Ganz einfache Sache

    Du gibst den falschen Pfad an... Du musst einfach cor Captcha nen 2ten / machen und dann gehts auch... Zumindest bei mir

    Code:
    https://user.web.de/[B][COLOR="Red"]/[/COLOR][/B]Captcha/img.C63E093FBDA884CC9E1495121CB84C8C.a02a01d40t22_593352106.jpg;jsessionid=C63E093FBDA884CC9E1495121CB84C8C.a02a01d40t22?id=C63E093FBDA884CC9E1495121CB84C8C.a02a01d40t22_593352106
    
     
  13. 29. Oktober 2009
    AW: Project: web.de generator

    also das mit den "//" kann ich mir ned richtig vorstellen... https bleibt https, das wär auf jeden fall ein fehler bei web.de wenn man so einfach an den unverschlüsselten code ran käme.

    am besten du googlest mal nach einem https-handler
    Java Tip 96: Use HTTPS in your Java client code | JavaWorld <- sowas zum beispiel.

    im grunde hast du mit der verschlüsselten https-response das was du haben wolltest, nur entschlüsselt dir das der browser eigenständig wenn dus da anzeigen lässt, in deiner java-umgebung musst du dich selber darum kümmern.
     
  14. 30. Oktober 2009
    AW: Project: web.de generator

    Es ist ein Fehler bei web.de ich habs gestern getestet und es geht so aufjedenfall... So jetzt wo die Session abgelaufen ist kommt folgendes

    Wenn ich nun erneut auf https://user.web.de gehe wird eine neue Session erstellt, suche ich mir jetzt die passende Stelle ausm Quellcode

    Und füge das hinter https://user.web.de/ ein sehe ich den Captcha... Vondaher ist es total easy und man braucht das olle header Zeugs garnet

    Mann muss nur die Stelle im Quellcode finden lassen und diese dann hinter https://user.web.de/ einfügen und schon kann man den Captcha anzeigen lassen...
     
  15. 30. Oktober 2009
    AW: Project: web.de generator

    OK thx rome, das klappt ja echt ^^

    Also nächstes Prob. ist, wie kann ich den Button auf der website anklicken, der dann den acc. registriert.?

    Im Quelltext steht, der Button löst die Methode clear_step1(); aus.

    Ich habs aber versucht diese Methode per Post Befehl ebenfalls an die Seite zu schicken, Leider kein Erfolg.

    Ich glaub da liegt allgemein noch ein Fehler in meinem POST.

    Hier mal kurz der Code von meinem POST Befehl und dann noch ein Wireshark Ausschnitt davon!:

    Code:
     System.out.println("Mouse Clicked create acc");
     String usr = new String(ranusername());
     String passwort = new String(ranpass());
     loginname.setText(usr + "@web.de");
     loginpass.setText(passwort);
     String data ="step1:salutation=" + URLEncoder.encode("Mann")
     + "&step1:prename=" + URLEncoder.encode(ranprename())
     + "&step1:name=" + URLEncoder.encode(ranname())
     + "&step1:streetNo=" + URLEncoder.encode(ranstreet())
     + "&step1:plz=" + URLEncoder.encode(ranplz())
     + "&step1:city=" + URLEncoder.encode(rancity())
     + "&step1:secAnswer=" + URLEncoder.encode(ranprename())
     + "&step1:dateOfBirth.day=" + URLEncoder.encode(randay())
     + "&step1:dateOfBirth.month="
     + URLEncoder.encode(ranmonth())
     + "&step1:dateOfBirth.year=" + URLEncoder.encode(ranyear())
     + "&step1:username=" + URLEncoder.encode(usr)
     + "&step1:passwd=" + URLEncoder.encode(passwort)
     + "&step1:passwd2=" + URLEncoder.encode(passwort)
     + "&step1:captcha=" + URLEncoder.encode(captcha.getText());
     
     out.println("POST /all.jsf HTTP/1.1");
     out.println("Connection: Keep-Alive");
     out.println("Host: www.user.web.de:80");
     out.println("jsessionid=" + URLEncoder.encode(sessionstring));
     out.println(data);
     out.println("clear_step1();");
     //printout.writeBytes(data);
     System.out.println("So jetzt kommt der content");
     System.out.println(data);
     socket.close();
    Das alles passiert in einer Methode, das heißt der schickt zuerst den GET Befehl mit dem LInk, dann wird ausm quelltext der captchalink herausgeholt,
    angezeigt und dann wird in einer Endlosschleife gewartet (noch in der Methode) bis man aufn Button clickt, dann geht die Methode weiter und schickt diesen Post Befehl!

    So und hier das, was das Programm laut Wireshark sendet:

    Als Antwort kommt nur der quelltext von der gleichen Seite.
    Oder sollte des mit dem jsessionid vllt. so heißen:
    SET-COOKIE jsessionid=......?
     
  16. 2. November 2009
    AW: Project: web.de generator

    So ich hab mir dann noch gedacht, dass es am https liegen könnte, das der die Daten nich senden will. Manchmal kam auch ein Fehler 301 Moved Permanently.

    Jetzt sende ich den POST Befehl über https:
    Code:
     SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault()
     .createSocket("www.user.web.de", 443);
    PrintWriter out = new PrintWriter( socket.getOutputStream(), autoflush );
     String data =
     "step1:salutation= 1" //+ URLEncoder.encode("Mann")
     + "&step1:prename=" + URLEncoder.encode(ranprename())
     + "&step1:name=" + URLEncoder.encode(ranname())
     + "&step1:streetNo=" + URLEncoder.encode(ranstreet())
     + "&step1:plz=" + URLEncoder.encode(ranplz())
     + "&step1:city=" + URLEncoder.encode(rancity())
     + "&step1:secAnswer=" + URLEncoder.encode(ranprename())
     + "&step1:dateOfBirth.day=" + URLEncoder.encode(randay())
     + "&step1:dateOfBirth.month="
     + URLEncoder.encode(ranmonth())
     + "&step1:dateOfBirth.year=" + URLEncoder.encode(ranyear())
     + "&step1:username=" + URLEncoder.encode(usr)
     + "&step1:passwd=" + URLEncoder.encode(passwort)
     + "&step1:passwd2=" + URLEncoder.encode(passwort)
     + "&step1:captcha=" + URLEncoder.encode(captcha.getText())
     + "jsessionid=" + URLEncoder.encode(sessionstring);
     
     out.println("POST /all.jsf HTTP/1.1");
     out.println("Connection: Keep-Alive");
     out.println("Host: www.user.web.de:443");
     out.write("Content-Length: "+data.length()+"\r\n");
     out.write("Content-Type: application/x-www-form-urlencoded\r\n");
     out.println("Set-Cookie jsessionid=" + URLEncoder.encode(sessionstring));
     out.write("\r\n");
     out.println(data);
     out.println("clear_step1();");
    
    
    Als Antwort kommt immernoch die Standard Seite, die nicht ausgefüllt ist. xD

    Ich habs auch über das Jakarta Common Interface versucht, bin da aber überhaupt nich klar gekommen nach den Anleitungen und CodeSamples xD der wollt mir die nicht mal richtig importieren xD

    Ach und der Header Bereich scheint richtig tu sein, nachm Post Befehl kommt der Scheiß als Header zurück:

    Und der Cookie ist der gleiche, den ich vorher auslese und dann mitschicke, also ändert der sich nicht!
     
  17. 2. November 2009
    AW: Project: web.de generator

    wenn der wirklich "JSESSIONID" setzt (also großgeschrieben), dann musst du den auch so wieder setzen.

    //edit seh grad das hier:
    Code:
    out.println("Set-Cookie jsessionid=" + URLEncoder.encode(sessionstring));
    Set-Cookie is fürn client. fürn server einfach nur Cookie schreiben. (+ du hast den doppelpunkt vergessen)

    Code:
    out.println("Cookie: JSESSIONID=" + URLEncoder.encode(sessionstring));
    aja, und am besten verwendest du "write" und nicht "println" um auf nummer sicher zu gehen, dass du nach jedem header ein "\r\n" stehen hast (und nicht nur "\n")
     
  18. 3. November 2009
    AW: Project: web.de generator

    So mit der Methode
    write() funzt es nicht!

    Da läuft der socket dann aus ^^ weil der nix zu tun hat!

    So ich verwende jetzt 2. sockets, da wenn ich nur einen verwende, der dann iwie die Daten nich mehr sendet!
    Deswegen schließe ich den erste, öffne dann nen 2. und poste mit dem
    Der 2- Socket ist ein SSL Socket!!!

    So nun bekomme ich wenn ich nen acc. erstellen will vom Server diese Antwort:

    Die Antwort vom Server, wenn man nen Acc. per Browser erstellt sieht aber so aus:

    Da sieht man auch, dass ich noch weitere cookies mitschicke, die ich aber gar nich auslesen kann!!

    Hier noch die Post Methode die über den browser mitgeschickt wird...



    Hier nochmal meine Post Methode:

    Spoiler
    Code:
     System.out.println("Mouse Clicked");
     // [start]
     usr = (ranusername());
     String passwort = new String(ranpass());
     loginname.setText(usr + "@web.de");
     loginpass.setText(passwort);
    
     data = URLEncoder.encode("step1:salutation= 1") // +
     + URLEncoder.encode("&step1:prename=") + URLEncoder.encode(ranprename())
     + URLEncoder.encode("&step1:name=") + URLEncoder.encode(ranname())
     + URLEncoder.encode("&step1:streetNo=") + URLEncoder.encode(ranstreet())
     + URLEncoder.encode("&step1:plz=") + URLEncoder.encode(ranplz())
     + URLEncoder.encode("&step1:city=") + URLEncoder.encode(rancity())
     + URLEncoder.encode("&step1:secAnswer=") + URLEncoder.encode(ranprename())
     + URLEncoder.encode("&step1:dateOfBirth.day=")
     + URLEncoder.encode(randay())
     + URLEncoder.encode("&step1:dateOfBirth.month=")
     + URLEncoder.encode(ranmonth())
     + URLEncoder.encode("&step1:dateOfBirth.year=")
     + URLEncoder.encode(ranyear()) 
     + URLEncoder.encode("&step1:username=")
     + URLEncoder.encode(usr) 
     + URLEncoder.encode("&step1:passwd=")
     + URLEncoder.encode(passwort) 
     + URLEncoder.encode("&step1:passwd2=")
     + URLEncoder.encode(passwort) 
     + URLEncoder.encode("&step1:captchaAnswer=")
     + URLEncoder.encode(captcha.getText());
    
     SSLSocket socket2 = (SSLSocket) SSLSocketFactory.getDefault()
     .createSocket("www.user.web.de", 443);
     PrintWriter out2 = new PrintWriter( socket2.getOutputStream(), true );
     LineNumberReader in2 = new LineNumberReader( 
     new InputStreamReader( socket2.getInputStream() ));
    
     out2.println("POST /all.jsf HTTP/1.1");
     out2.println("Host: user.web.de");
     out2.println("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4");
     out2.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
     out2.println("Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3");
     out2.println("Accept-Encoding: gzip,deflate");
     out2.println("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
     out2.println("Keep-Alive: 300");
     out2.println("Connection: keep-alive");
     out2.println("Cookie: "+"ns_sample= 20;"+" ns_cookietest=true;"+" ns_session=true;"+ " JSESSIONID=" + sessionstring);
     out2.println("Referer: http://produkte.web.de/freemail-webmail/");
     out2.println("\r\n");
     out2.println(data);
     out2.println("step1_SUBMIT");
     out2.println();
     System.out.println(data);
     System.out.println(sessionstring);
    
     // Die Neue Ausgabe in String speichern
     while (null != ((str = in2.readLine()))) {
     quellcode =(quellcode+"\n"+str);
     }
     System.out.println(quellcode);
     
     System.out.println("quellcode fertig");
     socket.close();
     out2.close();
     in2.close();
     
     }

    Iwie spür ich das ich nah dran bin ^^
     
  19. 4. November 2009
    AW: Project: web.de generator

    So bin wieder etwas weiter, ich weiß jetzt wieso meine Post Methode nich klappt.
    Es liegt am captcha, der wird anscheinend wenn man nen 2. socket öffnet neu generiert, somit wird immer ne falsches captcha eingegeben!

    Rausgekriegt hab ich des durch FIREBUG =)

    wenn man ein Feld im Formular falsch befüllt und abschickt, kriegt man trotzdem OK200 nur ohne dem Location https://user.web.de/goto/goto.jsf

    Also wird die Seite nur neu geladen.

    Also liegts am captcha...

    Ich habs wieder versucht mit nur einem Socket zum laufen zu kriegen aber Fehlanzeige, bei einem Socket, geht nur die GET Anfrage, danach wird
    nix mehr gemacht xD

    Deswegen hab ich socket1 für die Get Anfrage genutzt und Socket2 für die Post, aber wenn Socket2 neu geöffnet wird ändert sich auch das
    captcha und somit ist das angezeigt nicht mehr gültig!

    Hat vllt. einer jetzt ne idee, wie ich des mit den sockets anstellen könnte?

    Nochmal zur Veranschaulichung ^^

    Code:
    Socket1
    GET
    Hole CAptcha aus Quellcode
    Zeige Captcha
    schließe socket1
    Warte auf Buttonclick und Captchaeingabe
    Socket2
    POST
    Zeige Post Response Header // immer null bei nur einem socket
    Schließe socket2

    Hat denn echt keiner ne Idee, wie ich die 2 Requests mit nur einem socket hinkriege?? xD
    Aber wenn ich den GET Befehl mach um an den captcha zu kriegen, kommt mitm get auch als Antwort Connection close!!!

    Also muss man mit 2 sockets arbeiten... xD

    Sonst läuft das Programm ja einwandfrei
     
  20. 5. November 2009
    AW: Project: web.de generator

    ich hab zwar nicht den ganzen thread zu 100% verfolgt/gelesen aber sag mal ... warum machst du es dir so schwer??
    um nen request an ne seite zu schicken und die antwort zu bekommen gibts doch genug apis!
    gib einfach mal in google 'apache http java' ein. das spart dir schonmal die ganze scheißarbeit *sorry* mit den sockets.
     
  21. 5. November 2009
    AW: Project: web.de generator

    Habs jetzt hingekriegt mit der API von Apache, aber das Problem mit den Captchas existiert immernoch!!!

    Wenn der Post gesendet wird, ist des ein anderer Socket und somit wird die Seite neu geladen und des Captcha auch erneuert.... xD

    So hab den Scheiß jetzt hingekriegt ^^
    Der Fehler war so god damn, dass ich den hier nicht preis gebe
    der post war net vollständig

    Aber endlich geht er

    THX an alle die versucht haben mir zu helfen ^^
     
  22. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.