cURL login en vul daarna een nieuw formulier in
Ik krijg cURL maar niet aan de praat. Moet ook zeggen dat ik niet heel uitgebreid de documentatie heb doorgelezen. Ik probeer een simpele login te creëren en daarna een nieuw formulier in te vullen en te versturen. Om een bepaalde taak te automatiseren zeg maar ;)
login op domain.com/login.php met POST parameters "login=user&password=pass&submit=login"
en daana op domain.com/action.php met POST parameters "cmd=clear&fixed=1"
Wie-o-wie kan mij een op weg helpen?
Tot nu toe van alles geprobeerd maar zonder resultaat. Voorbeeldje;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$cookie_file_path = getcwd() . '/cookie.txt';
$agent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/A.B (KHTML, like Gecko) Chrome/X.Y.Z.W Safari/A.B.";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://www.x.com/login.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=user&password=pass&submit=login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_URL,'http://www.x.com/action.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=clear&fixed=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_exec($ch);
curl_close ($ch);
$agent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/A.B (KHTML, like Gecko) Chrome/X.Y.Z.W Safari/A.B.";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://www.x.com/login.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=user&password=pass&submit=login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_URL,'http://www.x.com/action.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=clear&fixed=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_exec($ch);
curl_close ($ch);
Je gebruikt de opzet van een phishing site: gebruiker logt in bij site A en site A post de login achter de schermen met cURL door naar site B. Niet echt een onderwerp om uitgebreid hulp bij te bieden.
Waar zie jij 2 domeinen in dit verhaal? cURL is bedoeld om GET en POST headers te versturen dus dan is iedereen ineens verdacht die met cURL aan de slag gaat?
Dylan PHP op 10/03/2013 18:00:39:
Bepaalde taken automatiseren... Zeg maar... Met een wink.Om een bepaalde taak te automatiseren zeg maar ;)
Maar nee hoor, ik gebruik cURL ook dagelijks. Alleen niet voor een login met een POST.
Je mist inhoudelijk het hele punt: dat dit prototype wordt gebruikt voor phishing, maakt het dus niet makkelijk te implementeren.
Waarom voel je je meteen aangevallen? Heb ik een punt? Of kun je concreter worden of welke "bepaalde taken" je "zeg maar" wilt automatiseren ;)
Toevoeging op 10/03/2013 18:40:31:
handmatig=automatisch
Gewijzigd op 10/03/2013 18:35:02 door Dylan PHP
Dylan PHP op 10/03/2013 18:34:27:
Okay, niets gezegd :)Ik heb verschillende Joomla websites (al vermeld in eerdere posts) en deze wil ik allemaal handmatig updaten door in te loggen en vervolgens op de update knop te drukken. Dit wil ik ook toepassen op andere CMSen die ik gebruik dus vandaar mijn post. Misschien dat het nu wat duidelijker is.
Bijna niets dan, want je probeert dus in één keer geautomatiseerd de login van Joomla op meerdere sites te omzeilen en vervolgens een handeling van de gebruiker te simuleren.
Kun je die klik op de Update-knop niet directer automatiseren, bij voorkeur via een instelling in een database?
Joomla heeft geen automatische update mogelijkheid. Ik wil het stukje ook gaan gebruiken voor andere CMSen dus het is niet alleen voor Joomla bedoeld. Een soort centrale plek waar ik via een klik op de knop meerdere sites kan updaten is zeg maar wat ik voor elkaar wil krijgen :)
Mijn vraag is eigenlijk: wat lukt er nou niet?
Ben je bij de 2e curl-actie niet meer ingelogd? Of lukt het inloggen niet? Wat is je vraag?
Ik gebruik het bij een phpBB-forum om automatisch berichten aan te maken (verjaardagen-bericht elke dag etc).
Ook gebruik ik het wekelijks om op zondag 2x de opgenomen kerkdienst te downloaden en direct op te slaan.
Kan dat ook handmatig doen, maar waarom niet automatiseren? cURL is daar tenslotte voor gemaakt.
Dylan PHP op 10/03/2013 18:53:01:
Even om de "probleemstelling" helder te krijgen... Je wilt dus voor meerdere Joomla-installaties automatisch software-updates installeren door een klik op de knop Update te simuleren met cURL? En dat niet alleen voor Joomla, maar eigenlijk ook voor andere updates?Joomla heeft geen automatische update mogelijkheid. Ik wil het stukje ook gaan gebruiken voor andere CMSen dus het is niet alleen voor Joomla bedoeld. Een soort centrale plek waar ik via een klik op de knop meerdere sites kan updaten is zeg maar wat ik voor elkaar wil krijgen :)
@Eddy, ik weet niet of ik daadwerkelijk ben ingelogd aangezien ik niet weet hoe ik dit kan controleren. Wel zie ik in cookies.txt wat verschijnen wat erop lijkt dat de sessie wel is aangemaakt.
Eigenlijk is het vrij simpel wat ik wil, eerst een login, daarna een post verrichten op een andere pagina. Als iemand mij zou kunnen helpen graag ;) Ik ga nu ook nog even Googlen, als ik de oplossing heb post ik dit uiteraard op het forum.