Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 23/01/2013, à 05:38

kironux

wget et persistance cookies

Bien le bonsoir à tous,

Alors voilà, j'utilise wget pour me connecter au site www.dtdns.com afin de mettre à jour l'IP, j'arrive bien à me connecter mais impossible d'utiliser la session ouverte pour naviguer à travers le site =/

Voilà le morceau de code côté serveur :
Page permettant de s'identifier (https://www.dtdns.com/login) :

<form action="/login" method="POST" accept-charset="utf-8" enctype="application/x-www-form-urlencoded" >
<input type="hidden" name="authenticityToken" value="c6fh4gc5h4gf8h4gfh51f8h45tf1h56tfhfth654">
<input type="text" name="username" id="username" value="" />
<input type="password" name="password" id="password" value="" />
<input type="submit" value="Log In &gt;&gt;">	
</form>

Voilà le script (fonctionnel) permettant de s'y connecter :

#!/bin/bash
# On récupère la page
wget --keep-session-cookies --save-cookies cookies.txt https://www.dtdns.com/login -O login &> /dev/null
# On parse le fichier afin de pouvoir extraire le token fournit
hiddenToken=`cat login | grep value | grep authenticityToken | tr '=' ' ' | awk '{print $16}' | sed s/\"//g | sed s/\>//g`
# On supprime la page, devenue inutile
rm login
# On prépare les champs à fournir
post=username=user'&'password=pass'&'authenticityToken=${hiddenToken}

# On s'identifie sur le site
wget --post-data ${post} --load-cookies cookies.txt https://www.dtdns.com/login -O login_post &> /dev/null
# On supprime la page contenant l'accueil après être connecté
rm login_post

#############
# Ici se situe le reste du script présenté dans la suite du topic
#############

rm cookies.txt
# On supprime le fichier de cookies

(les sorties vers les fichiers, c'était pour "débugger", j'utiliserais l'option "--quiet" après wink )
Source : http://stackoverflow.com/questions/4272 … entication

Jusque là, le fichier "cookies.txt" contient le "authenticityToken" qui est bien le même dans le fichier "login" (fichier HTML contenant la page téléchargée) et ce token est bien réutilisé, car dans le fichier "login_post", j'ai bien la confirmation que mon identification a été effectuée avec succès (la page HTML contient la ligne suivante : "You are currently logged in as XXXXX" (XXXXX est bien mon login)).

C'est à ce moment là que j'essaye de récupérer la page me permettant d'accéder aux ressources du site (https://www.dtdns.com/dtdomainmanagement/hostviewall) :

wget -O logged --load-cookies cookies.txt https://www.dtdns.com/dtdomainmanagement/hostviewall

cat logged | grep "currently"
#rm logged

Et là, paf, il me dit que je ne suis pas connecté (le grep effectué juste après me permet de vérifier si le login est présent en bas de page, donc si je suis bien identifié, or, il ne me l'affiche pas) =/

J'ai lancé wget avec l'option "-d" et j'obtiens ceci :

Setting --output-document (outputdocument) to logged
Setting --load-cookies (loadcookies) to cookies.txt
Setting --save-cookies (savecookies) to cookies.txt
Setting --keep-session-cookies (keepsessioncookies) to 1
DEBUG output created by Wget 1.13.4 on linux-gnu.

URI encoding = «UTF-8»

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 08:24:42] PLAY_SESSION 081bf6dfgf5h4gfh5f5hf1g5325619c18dea4-%00___AT%3Ade1f5a1b07yjgjghj3620e8b94cca9%00
--2013-01-23 04:24:44--  https://www.dtdns.com/dtdomainmanagement/hostviewall
Résolution de www.dtdns.com (www.dtdns.com)... 209.240.78.125
Caching www.dtdns.com => 209.240.78.125
Connexion vers www.dtdns.com (www.dtdns.com)|209.240.78.125|:443... connecté.
Created socket 4.
Releasing 0x0000000001700ed0 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 4 to SSL handle 0x0000000001701270
certificate:
  subject: /OU=Domain Control Validated/OU=nsProtect Secure Xpress/CN=www.dtdns.com
  issuer:  /C=US/O=Network Solutions L.L.C./CN=Network Solutions DV Server CA
X509 certificate successfully verified and matches host www.dtdns.com

---request begin---
GET /dtdomainmanagement/hostviewall HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: www.dtdns.com
Connection: Keep-Alive
Cookie: PLAY_SESSION=081bf6dfgf5h4gfh5f5hf1g5325619c18dea4-%00___AT%3Ade1f5a1b07yjgjghj3620e8b94cca9%00

---request end---
requête HTTP transmise, en attente de la réponse... 
---response begin---
HTTP/1.1 302 Found
Date: Wed, 23 Jan 2013 03:24:45 GMT
Server: Play! Framework;1.2.1;prod
Content-Type: text/plain; charset=utf-8
Location: https://www.dtdns.com/
Cache-Control: no-cache
Content-Length: 0
Set-Cookie: PLAY_FLASH=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Set-Cookie: PLAY_ERRORS=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Set-Cookie: PLAY_SESSION=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive

---response end---
302 Found

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_FLASH 

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_ERRORS 
Deleted old cookie (to be replaced.)

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_SESSION 
Registered socket 4 for persistent reuse.
URI content encoding = «utf-8»
Emplacement: https://www.dtdns.com/ [suivant]
] done.
URI content encoding = None
--2013-01-23 04:24:46--  https://www.dtdns.com/
Réutilisation de la connexion existante vers www.dtdns.com:443.
Reusing fd 4.

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: www.dtdns.com
Connection: Keep-Alive
Cookie: PLAY_ERRORS=; PLAY_FLASH=; PLAY_SESSION=

---request end---
requête HTTP transmise, en attente de la réponse... 
---response begin---
HTTP/1.1 200 OK
Date: Wed, 23 Jan 2013 03:24:45 GMT
Server: Play! Framework;1.2.1;prod
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Content-Length: 9362
Set-Cookie: PLAY_FLASH=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Set-Cookie: PLAY_ERRORS=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Set-Cookie: PLAY_SESSION=;Expires=Wed, 23-Jan-13 03:24:45 GMT;Path=/
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive

---response end---
200 OK
Deleted old cookie (to be replaced.)

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_FLASH 
Deleted old cookie (to be replaced.)

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_ERRORS 
Deleted old cookie (to be replaced.)

Stored cookie www.dtdns.com -1 (ANY) / <permanent> <insecure> [expiry 2013-01-23 04:24:46] PLAY_SESSION 
URI content encoding = «utf-8»
Longueur: 9362 (9,1K) [text/html]
Sauvegarde en : «logged»

100%[==============================================>] 9 362       --.-K/s   ds 0,1s    

2013-01-23 04:24:46 (61,7 KB/s) - «logged» sauvegardé [9362/9362]

Saving cookies to cookies.txt.
Done saving cookies.

Je suis un petit peu perdu, si quelqu'un a la moindre idée smile

Dernière modification par kironux (Le 23/01/2013, à 05:43)

Hors ligne

Haut de page ↑