Announcement

Collapse
No announcement yet.

libCurl Formular via HTTPS

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • libCurl Formular via HTTPS

    Hallo!

    Ich habe folgendes Problem. Ich muss ein Programm schreiben dass sich via Webformular (alles HTTPS) einloggt. Das Formular sieht folgendermaßen aus:

    Code:
                <form action="j_security_check" method="post" name="login">
    
                    <p>
                        <strong><label>Nummer:</label></strong><br />
                        <input type='text' name='j_username' size=25>
                    </p>
    
                    <p>
                        <strong><label>Passwort:</label></strong><br />
                        <input type='password' name='j_password' size=25>
    
                    </p>
                    <p>
                        <input type="submit" value="Einloggen" />
                    </p>
                </form>
    Und das hier ist mein Programm:

    Code:
    int main(int argc, char *argv[]) {
    
    	
    	CURL *curl;
    	CURLcode res;
    	string post;
    
    	head();
    
    	curl = curl_easy_init();
    	
    	if(argc < 2){
    
    		cout << "Zu wenig Parameter! " << endl;
    		exit(-1);
    	}
    
    
    
    	if(!curl){
    		
    		cerr << "Error bei Curl Initialisierung!" << endl;
    		exit(-1);
    	}
    	int i = 10;
    		
    		
    		post = "j_username=";
    		post += int2string(i);
    		post += "j_password=";
    		post += argv[1];
    		cout << post << endl;;
    		// Die URL von der Login Seite
    		
    		curl_easy_setopt(curl, CURLOPT_URL, "https://www.gammel.de/j_security_check");
    		curl_easy_setopt(curl, CURLOPT_REFERER, "https://www.gammel.de/login.html");
    		// Die POST Daten -> j_username und j_password
    
    		curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "j_username=24100614&j_password=crackme");
    		
    		// die antwort wird in datei geschrieben
    		//curl_easy_setopt(curl, CURLOPT_WRITEDATA, datei);
    		//curl_easy_setopt(curl, CURLOPT_WRITEHEADER, header);
    		
    		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
    		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
    
    	
    		// Anweisungen ausführen
    		res = curl_easy_perform(curl);
    		if(res != CURLE_OK){
    
    			cout << "Failed to get: " << endl;
    			curl_easy_cleanup(curl);
    			exit(-1);
    		}
    		cout << buffer << endl;
    	
    	
    
    	
    	curl_easy_cleanup(curl);
    	return EXIT_SUCCESS;
    }
    Wenn ich das Programm ausführe kriege ich immer einen 302 Error sprich "moved temporarily" Über meinen Webbrowser kann ich mich aber ganz normal einloggen....
    Habt ihr ne Idee was ich machen kann?

    Danke

    Nimda05

    EDIT 1; Vor allem das Problem ist dass es diese Weiterleitung die auf der Error Seite gezeigt wird irgendwo ins nirvana führt....

  • #2
    dem 302er folgen

    Alles was <500 ist übrigens KEIN Fehler. Insoweit erhälst du keinen Fehler, sondern den Hinweis "Seite ist woanders" und kannst diesem folgen. Auch dein Browser erhält diesen und folgt bloß
    Christian

    Comment


    • #3
      ich kriege als antwort folgende meldung:

      Code:
      <html><head><title>302 Moved Temporarily</title></head>
      <body bgcolor="#FFFFFF">
      <p>This document you requested has moved temporarily.</p>
      <p>It's now at <a href="https://www.gammel.de/ostium-registration;jsessionid=GsLgqdim91sWLbep4QJktMW326ChUNJjst5YuSFrXrcqfG2yt1ko!1180416782">https://www.gammel.de/ostium-registration;jsessionid=GsLgqdim91sWLbep4QJktMW326ChUNJjst5YuSFrXrcqfG2yt1ko!1180416782</a>.</p>
      </body></html>
      HTTP/1.1 302 Moved Temporarily
      Date: Sun, 29 Jul 2007 12:43:12 GMT
      Server: Apache
      Location: https://www.gammel.de/ostium-registration;jsessionid=GsLgqdim91sWLbep4QJktMW326ChUNJjst5YuSFrXrcqfG2yt1ko!1180416782
      Connection: close
      Transfer-Encoding: chunked
      Content-Type: text/html; charset=iso-8859-1
      
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <HTML><HEAD>
      <TITLE>302 Moved Temporarily</TITLE>
      </HEAD><BODY>
      <H1>Moved Temporarily</H1>
      The document has moved <A HREF="https://www.gammel.de/ostium-registration;jsessionid=GsLgqdim91sWLbep4QJktMW326ChUNJjst5YuSFrXrcqfG2yt1ko!1180416782">here</A>.<P>
      <P>Additionally, a 302 Found
      error was encountered while trying to use an ErrorDocument to handle the request.
      </BODY></HTML>
      Wenn ich das Programm ausführe. dann die komplette Adresszeile kopiere und in meinen Browser einfüge kriege ich aber nen 404 Error. Was tun?

      Comment


      • #4
        Wird dann wohl daran liegen, dass die Session nicht im Browser ist.

        Wende dich an den Serveradmin
        Christian

        Comment


        • #5
          Was heist das? Wie kann ich mich dennoch einloggen?

          Ich habe leider keinen Kontakt zu dem Admin

          Comment


          • #6
            Ein Lib benutzen, die ein redirect kann (bsp. Indy)
            prüfen, ob CURL sowas kann
            Christian

            Comment


            • #7
              Also Curl macht einen Redirect. Das habe ich jetzt aktiviert.

              Hat nicht jemand zufällig mal nen Quelltext der sich über ein Webformular einloggt?
              Ich bin gerade voll am verzweifeln weil ich schon alles mögliche ausprobiert habe und google auch nix vernünftiges raustut.

              Comment

              Working...
              X