[curl] hi.nl - Wie heeft Hi (mobiel) en kan mij helpen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
offtopic:
Ik weet echt niet waar dit topic moet. Ik gebruik nu curl in de Linux terminal. Het is er vast ook voor Windows, en het is als PHP module te vinden.


Ik probeer dat beltegoed-balkje van de Hi.nl website te gebruiken om het verbruikte percentage in een script te krijgen. De width van het verbruikte deel is daarvoor goed te gebruiken. Het komt op de site via een Ajax request maar in feite is het gewoon deze pagina (als je ingelogt bent):
http://www.hi.nl/MyHi/MijnHi-Overzicht/Mijn-Tegoed.htm
<div style="width: 495px; height: 30px; background-image: url("/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_achtergrond.gif");"><div style="width: 17%; height: 30px; background-image: url("/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_schuivertje_30x1.gif"); float: right; margin-right: 8px;"> </div></div>
Als je twee cookies uit Firefox kopieert kan je met curl die pagina ook binnenhalen:
code:
1
curl --insecure --cookie "JSESSIONID=[...]; iPlanetDirectoryPro=[...];" https://www.hi.nl/MyHi/MijnHi-Overzicht/Mijn-Tegoed.htm

En dan krijg je netjes de juiste html outgeput, klaar om op te vangen.

Dat is wat ik wil, maar dan zonder die cookies uit mijn browser te kopieren want ze zijn slechts tijdelijk geldig. Hier is wat ik tot nu toe probeerde:


Sessie beginnen:
code:
1
curl --insecure --cookie-jar hi.nl.cookie.txt --output /dev/null https://www.hi.nl/amserver/UI/Login

Cookies:
JSESSIONID=[...]
BIGipServerAS-AM-HTTP-58080=[...]

Login doen:
code:
1
curl --insecure --cookie hi.nl.cookie.txt --cookie-jar hi.nl.cookie.txt -d 'myhi_user=<USERNAME>' -d 'myhi_pass=<PASSWORD>' -d 'org=hi.nl' -d 'module=JDBC' https://www.hi.nl/amserver/UI/Login

Dan output curl een JDBC login pagina die je normaal nooit ziet, waar username en password IDToken1 en IDToken2 heten.

[edit]
Als je de goto parameter die je diep in s_code.js kunt vinden meegeeft, dan is de respons niets anders.
code:
1
-d goto="https://www.hi.nl/web/form?ff=92171&formelement=207607&form=92171&pageid=158145&autologin=true&fromaw=true"

[/edit]

De cookies zijn echter wel upgedate:
JSESSIONID=[...]
BIGipServerAS-AM-HTTP-58080=[...]
AMAuthCookie=[...]

De AMAuthCookie lijkt exact op de nodige iPlanetDirectoryPro, maar de JSESSIONID lijkt een handvol tekens te kort. Als je ze kopieert en dan nog eens invult:
code:
1
curl --insecure --cookie "JSESSIONID=[...]; iPlanetDirectoryPro=[...];" https://www.hi.nl/MyHi/MijnHi-Overzicht/Mijn-Tegoed.htm

krijg je ook niet de beltegoed balk maar een redirect naar de login pagina.

Als je de eerder genoemde IDToken1 en IDToken2 invult kom je ook niet verder:
code:
1
curl --insecure --cookie hi.nl.cookie.txt --cookie-jar hi.nl.cookie.txt -d 'IDToken1=<USERNAME>' -d 'IDToken2=<PASSWORD>' -d 'org=hi.nl' -d 'module=JDBC' https://www.hi.nl/amserver/UI/Login

Cookies:
JSESSIONID=[...]
BIGipServerAS-AM-HTTP-58080=[...]
AMAuthCookie=LOGOUT
En verder geen output.


Ik was benieuwd of iemand met meer verstand van wat ik probeer te doen en die zelf Hi + login gegevens heeft even deze stappen wilde nalopen en kijken of ie de truuk kan vinden.

[ Voor 5% gewijzigd door Sando op 10-09-2010 21:34 ]

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • pascalw
  • Registratie: Februari 2008
  • Laatst online: 05-09 20:23
Je kunt beter even met LiveHTTPHeaders (firefox plugin) bijvoorbeeld kijken welke headers er precies meegestuurd worden en dan met curl of een andere http library precies zo'n request sturen. Komt wel eens voor dat dit soort scripts bepaalde user-agents zoals die van curl bijvoorbeeld blokkeren om screen scraping te voorkomen.

[ Voor 53% gewijzigd door pascalw op 12-09-2010 14:04 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

curl op de commandline heeft niets met programmeren te maken.

PRG >> NOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Ik heb de Hi-beltegoed rippogingen weer opgepikt en ik ben al wat verder. Hier een ugly maar werkend proof of concept BASH scriptje:

code:
1
2
3
4
5
6
7
KEY=`curl --insecure --cookie-jar hi.nl.cookie.txt https://www.hi.nl/Inlogpagina.htm | grep swfrmsig | awk -F "value=\"" '{print $2}' | awk -F \" '{print $1}'`
GOTO="https%3A%2F%2Fwww.hi.nl%2Fweb%2Fform%3Fff%3D92171%26formelement%3D170411%26form%3D92171%26pageid%3D94111%26orgurl%3D%26gotourl%3Dhttp%253A%252F%252Fwww.hi.nl%253A80%252FMyHi%252FMijnHi-Overzicht%252FMijn-Tegoed.htm%26autologin%3Dtrue%26fromaw%3Dtrue"
GOTO2="https://www.hi.nl/web/form?ff=92171&formelement=170411&form=92171&pageid=94111&orgurl=&gotourl=http%3A%2F%2Fwww.hi.nl%3A80%2FMyHi%2FMijnHi-Overzicht%2FMijn-Tegoed.htm&autologin=true&fromaw=true"
GOTO3="http://www.hi.nl:80/MyHi/MijnHi-Overzicht/Mijn-Tegoed.htm"
curl -v --insecure --cookie hi.nl.cookie.txt --cookie-jar hi.nl.cookie.txt -d 'IDToken1=GEBRUIKER' -d 'IDToken2=WACHTWOORD' -d "goto=$GOTO" -d 'gotoOnFail=https%3A%2F%2Fwww.hi.nl%2Floginfailed.shtml' -d 'org=hi.nl' -d 'module=JDBC' -d 'arg=newsession' -d "swfrmsig=$KEY" https://www.hi.nl/amserver/UI/Login
curl -v --insecure --cookie hi.nl.cookie.txt --cookie-jar hi.nl.cookie.txt $GOTO2
curl -v --cookie hi.nl.cookie.txt --cookie-jar hi.nl.cookie.txt $GOTO3

offtopic:
GOTO2 en 3 zijn overbodig in een ander scriptje maar laten we het even zo makkelijk mogelijk houden tot het werkt


De final output is echter:
(..)
<div style=" width:NaN%; &#9;&#9;height:30px; &#9;&#9;background-image: url('/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_schuivertje_30x1.gif'); &#9;&#9;float:right; &#9;&#9;margin-right: 8px; &#9;&#9;"> </div>
(..)
<strong>Kosten boven je bundel: </strong>€0,00<br />
<strong>Kosten buiten je bundel: </strong>€0,00<br />
(..)
NaN. W00t? Ik ben wel ingelogt, anders kom ik niet eens op die pagina terecht. Maar in Opera of Firefox staat op die plek het verbruikspercentage en die wil ik nu juist hebben!

Ik had één keer in Opera dat er bij een refresh opeens ook NaN stond, en na uitloggen en inloggen gewoon weer een paar procent, maar dat voorval kan ik niet hercreëren. :N

[ Voor 10% gewijzigd door Sando op 06-02-2011 19:14 ]

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

Verwijderd

En wat als je "-A Mozilla/4.0" meegeeft?

Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Zelfde resultaat. Althans, dat zeg ik nu wel, maar ik gebruikte:
code:
1
--user-agent "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 ( .NET CLR 3.5.30729; .NET4.0E)"

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij moet je wel de "Mozilla/4.0" optie gebruiken anders werkt het niet.

Acties:
  • 0 Henk 'm!

Verwijderd

-moet beter lezen-

[ Voor 80% gewijzigd door Verwijderd op 07-02-2011 06:05 . Reden: tis laat ]


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Sando schreef op zondag 06 februari 2011 @ 19:01:
NaN. W00t? Ik ben wel ingelogt, anders kom ik niet eens op die pagina terecht. Maar in Opera of Firefox staat op die plek het verbruikspercentage en die wil ik nu juist hebben!
het kan ook zijn dat met behulp van javascript het nummer later wordt opgehaald. Als dat het geval is, is dat alleen maar makkelijker voor je, want dat betekend dat er een ajax requests wordt gedaan op die pagina die je hopelijk ook los kunt doen :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Verwijderd schreef op zondag 06 februari 2011 @ 23:07:
Volgens mij moet je wel de "Mozilla/4.0" optie gebruiken anders werkt het niet.
Wie ben ik om advies in de wind te slaan dus ik heb het even geprobeert, maar zoals ik al dacht maakt het geen verschil. Ik dacht al, waarom zou het ook uitmaken of ik de useragent van Firefox kopieer, of gewoon een oude Mozillatag meegeef?
moto-moi schreef op maandag 07 februari 2011 @ 07:35:
[...]
het kan ook zijn dat met behulp van javascript het nummer later wordt opgehaald. Als dat het geval is, is dat alleen maar makkelijker voor je, want dat betekend dat er een ajax requests wordt gedaan op die pagina die je hopelijk ook los kunt doen :)
Dat zou wel gaaf zijn, maar wanneer ik in Opera of Firefox naar de source kijk, dan zie ik de bron van voordat JS iets heeft kunnen doen, en dan staat het percentage er al in.

Toch ging ik even opzoek naar javascript en die staat hier:
http://www.hi.nl/static/k.../js/kpnhinlprod/s_code.js

Ik kan er niets in ontdekken wat ik zoek, maar een groot deel is ook obfuscated. ;(

Hier is trouwens de bron van de volledige pagina. Die rare htmlchars zet hi er zelf tussen.
code:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="robots" content="NOOPD" /> 
    <title>Mijn Tegoed</title>
</head>
<body style="background-color : white; color : #272A7A" id="home">
<!--googleoff: all-->
<!-- Generated by WebManager on: Mon Feb 07 13:06:02 CET 2011 -->
<!-- blankPage-->
<!-- SiteCatalyst code version: H.9. Copyright 1997-2007 Omniture, Inc. More info available at http://www.omniture.com -->
<script type="text/javascript" src="/static/kpnmobilepresentation/js/kpnhinlprod/s_code.js"></script>
<script type="text/javascript"><!--
s.pageName="Hi productie omgeving:194429:Mijn Tegoed"
s.channel="hi.nl:MyHi"
s.prop2="open"
//--></script>
<!-- End SiteCatalyst code version: H.9. (Header) -->
<!--googleon: all-->
<div id="content">
                                        <h3 class="sifr">Indicatie Bel & Sms tegoed
        </h3>
            <p><div style="
        width: 495px;
        height:30px;
        background-image: url('/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_cijfers.gif');      
        "> </div><div style="
        width: 495px;
        height:30px;
        background-image: url('/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_achtergrond.gif');
        "><div style="
width:NaN%;
        height:30px;
        background-image: url('/static/kpnmobilepresentation/images/hiprogressbar/verbruiksbalk_schuivertje_30x1.gif');
        float:right;
        margin-right: 8px;
        "> </div></div><br /><strong>Kosten boven je bundel: </strong>€0,00<br /><strong>Kosten buiten je bundel: </strong>€0,00<br /><br/></p>
                                    <p>Let op: de gegevens worden &#8217;s nachts geüpdate, dit betekent dat je gegevens maximaal één dag vertraging kunnen hebben. Daarnaast worden sommige kosten (waaronder de kosten voor bellen in het buitenland) op een later tijdstip bijgewerkt.</p>
    
</div>
<!--googleoff: all-->
<script type="text/javascript">
<!-- Begin SiteCatalyst code version: H.9. (Footer)
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)//--></script>
<script type="text/javascript"><!--
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
//--></script>
<!-- End SiteCatalyst code version: H.9. (Footer) -->
</body>

[ Voor 52% gewijzigd door Sando op 07-02-2011 23:30 ]

🇪🇺 Buy from EU (GoT)

Pagina: 1