Connexion site web POST

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

xg7xg7pat

Membre Banni
Sep 17, 2011
52
0
311
Bonjour,

Je vient enfin faire mon premier tutoriel ^^.

Le but du tutoriel c'est d'utiliser un script python pour se connecter a un site web.

Pourquoi ?

Ont va prendre un exemple, Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!, ont peut voter toutes les 2H et quand ont vote ont gagne 40 points pour chaque vote. Comme je suis un grand flemmard, j'ai fait un script python qui le fait pour moi.

C'est quoi POST :quoi:

Cette méthode est utilisée pour transmettre des données en vue d'un traitement à une ressource (le plus souvent depuis un formulaire HTML). L'URI fournie est l'URI d'une ressource à laquelle s'appliqueront les données envoyées. Le résultat peut être la création de nouvelles ressources ou la modification de ressources existantes. À cause de la mauvaise implémentation des méthodes HTTP (pour Ajax) par certains navigateurs (et la norme HTML qui ne supporte que les méthodes GET et POST pour les formulaires), cette méthode est souvent utilisée en remplacement de la requête PUT, qui devrait être utilisée pour la mise à jour de ressources.

Ont le voie ou la méthode POST ?

Ont va sur Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Ont regarde la code source de la page ( clique droit, afficher le code source de la page )

PHP:
<form id="login" method="post" action="http://www.imperial-mt2.com/fr/index.php?p=login">
<div>
<input style="text-align:center;" type="text" class="bar" name="username" placeholder="Nom de compte" /><br />
<span class="bullet01"></span><br />
<input style="text-align:center;" type="password" class="bar" name="password" placeholder="Mot de passe" /><br />
<div class="sb-sep"></div>
<input type="submit" class="button" value="Connexion" />

Voila, c'est toute les information qu'il faut.

PHP:
# -*-coding:Latin-1 -*
import os # On importe le module os
import urllib
import urllib2
import sys, re, httplib, socket, cookielib
import time

url = 'http://www.imperial-mt2.com/fr/index.php?p=login'  # URL de la page de login 

# Cela sert a stocker le cookie pour eviter d'être déconecter quand ont va sur une autre page
cookie_jar = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))

# Ont demande la login et le password
nom_utilisateur = raw_input("Entrez votre login : ")
nom_utilisateur = str(nom_utilisateur)
password_player = raw_input("Entrez votre password : ")
password_player = str(password_player)

#La requete pour le POST
values = [
('username', nom_utilisateur),
('password', password_player),
('button', 'Connexion')]


#Ont se connecte 
login_form_data = urllib.urlencode(values) # Ont encode notre requête post pour qu'elle devienne username=nom_utilisateur&password=password_player&button=Connexion
opener.addheaders = [('User-agent', 'Mozilla/5.0')] # Ont utilise Mozilla
test_page = opener.open(url, login_form_data) # Ont ouvre la page web
html = test_page.read() # Ont lit la page web

#Ont verifie que l'ont est bien connecter
if re.search("<p>Vous avez entr&eacute; un nom de compte ou un mot de passe incorrect.</p>",html): 
	print "[-] Login Failed:"
	sys.exit()
else:
	print "[+] Login Reussi:"

PHP:
# -*-coding:Latin-1 -*
import os # On importe le module os
import urllib
import urllib2
import sys, re, httplib, socket, cookielib
import time

url = 'http://www.imperial-mt2.com/fr/index.php?p=login'  # URL de la page de login 
url_vote1 = 'http://www.imperial-mt2.com/fr/index.php?p=vote&vote=1'
url_vote2 = 'http://www.imperial-mt2.com/fr/index.php?p=vote&vote=2'
url_vote_valid = 'http://www.imperial-mt2.com/fr/index.php?p=vote&check=1'
url_vote_top_metin = 'http://www.topmetin.com/website/in/13'

# Cela sert a stocker le cookie pour eviter d'être déconecter quand ont va sur une autre page
cookie_jar = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))

# Ont demande la login et le password
nom_utilisateur = raw_input("Entrez votre login : ")
nom_utilisateur = str(nom_utilisateur)
password_player = raw_input("Entrez votre password : ")
password_player = str(password_player)

#La requete pour le POST
values = [
('username', nom_utilisateur),
('password', password_player),
('button', 'Connexion')]

values_top_metin = [
('valid', 'Valider mon vote')]

#Ont se connecte 
login_form_data = urllib.urlencode(values) # Ont encode notre requête post pour qu'elle devienne username=nom_utilisateur&password=password_player&button=Connexion
opener.addheaders = [('User-agent', 'Mozilla/5.0')] # Ont utilise Mozilla
test_page = opener.open(url, login_form_data) # Ont ouvre la page web
html = test_page.read() # Ont lit la page web

#Ont verifie que l'ont est bien connecter
if re.search("<p>Vous avez entr&eacute; un nom de compte ou un mot de passe incorrect.</p>",html): 
	print "[-] Login Failed:"
	sys.exit()
else:
	print "[+] Login Reussi:"

k = 1
debut = time.clock()
while 1:
	reponse2 = opener.open(url_vote1)
	html2 = reponse2.read()
	if re.search("Vous avez d&eacute;j&agrave; vot&eacute; sur ce topsite il y a moins de 2 heures.",html2):
		print "[-] Vous avez deja voter. "
	
	vote_form_data = urllib.urlencode(values_top_metin)
	open_top_metin = opener.open(url_vote_top_metin, vote_form_data)

	reponse4 = opener.open(url_vote2)
	html3 = reponse4.read()
	if re.search("Vous avez d&eacute;j&agrave; vot&eacute; sur ce topsite il y a moins de 1h 30 .", html3):
		print "[-] Vous avez deja voter. "
	else:
		reponse5 = opener.open(url_vote_valid)
		print "[+] Vous avez Voter", k, "fois"
		k = k +1
	
	fin = time.clock()
	verif = fin - debut 
	
	while verif < 7300:
		time.sleep(100)
		fin = time.clock()
		verif = fin - debut
		print(verif)
	
	login_form_data = urllib.urlencode(values)
	test_page = opener.open(url, login_form_data)
	
	fin = time.clock() - fin
	debut = time.clock() - debut

Pour les personnes qui ont encore un peu de mal :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!