WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Nordea Saldo med PHP (https://www.wn.se/forum/showthread.php?t=1057671)

SweLogan 2013-04-22 10:28

Nordea Saldo med PHP
 
Sitter och försöker komma åt mitt saldo på Nordea med hjälp av php kod.
Hittade lite information hur det är uppbyggt på http://blog.sallarp.com/mitt-saldo-a...handelsbanken/

Dock inte PHP.

<?php

$url = 'https://mobil.nordea.se/banking-nordea/nordea-c3/login.html';
$xyz = "19860226****"; // Personnummer
$xyx = "****"; // Personlig kod

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'C:\Program Files (x86)\EasyPHP\www\cookies.txt');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$content = curl_exec($ch);
curl_close($ch);


preg_match('/<input type="hidden" name="_csrf_token" autocomplete="off" value="(.*?)" \/>/', $content, $csrf_token);

$params = array('_csrf_token' => urlencode($csrf_token[1]), 'xyz' => urlencode($xyz), 'xyx' => urlencode($xyx));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:\Program Files (x86)\EasyPHP\www\cookies.txt');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

$result = curl_exec($ch);
curl_close($ch);

print_r($result);
?>

Vet inte redigt vad felet i koden är, men felet jag får är "Problem med sessionshanteringen - kontrollera att telefonen godkänner Cookies."

Den sparar ner Cookien i textfilen. Men känns som den inte vill använda den sen.

lunarmys 2013-04-22 14:34

Även om dokumentationen säger annorlunda, så hittar man följande i dokumentationen på php.net:
---
About CURLOPT_COOKIEJAR and CURLOPT_COOKIEFILE, and which / how to use.

- CURLOPT_COOKIEJAR is used when cURL is reading cookie data from disk.

- CURLOPT_COOKIEFILE is used when cURL is writing the cookie data to disk.

So you need to specify both (and set the same file location on both) when working with sessions for example.
---

SweLogan 2013-04-22 14:47

Som koden är nu så ska jag hämta sidan. Behöver JSESSIONID och _csrf_token.
Där efter så skickar jag inloggnings uppgifterna med JSESSIONID och token.

SweLogan 2013-04-25 09:17

Många som läst tråden, men inga svar :/

lunarmys 2013-04-25 09:18

Så antar att det jag skrev inte hjälpte?

zenda 2013-04-25 10:10

Det hamnar något i cookies.txt? Så du har skrivrättigheter till den.

Kekke 2013-04-25 12:35

Testa detta

PHP-kod:

<?php

$url 
'https://mobil.nordea.se/banking-nordea/nordea-c3/login.html';
$xyz "XXXX";    // Personnummer
$xyx "XXXX";     // Personlig kod

$ch curl_init();

$headers[] = "Accept: */*";
$headers[] = "Connection: Keep-Alive";

// basic curl options for all requests
curl_setopt($chCURLOPT_HTTPHEADER,  $headers);
curl_setopt($chCURLOPT_HEADER,  0);
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);         
curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0'); 
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
curl_setopt($chCURLOPT_COOKIEFILE'C:\xampp\cookies.txt'); 
curl_setopt($chCURLOPT_COOKIEJAR'C:\xampp\cookies.txt'); 

// set first URL
curl_setopt($chCURLOPT_URL$url);

$content curl_exec($ch);


preg_match('/<input type="hidden" name="_csrf_token" autocomplete="off" value="(.*?)" \/>/'$content$csrf_token);

$params http_build_query(array('_csrf_token' => $csrf_token[1], 'xyz' => $xyz'zyx' => $xyx));

curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS$params);

$result curl_exec($ch);
curl_close($ch);

print_r($result);
?>


SweLogan 2013-04-29 11:39

Den koden gjorde susen :D

Kekke 2013-04-29 13:31

Hade tråkigt och gjorde en gadget till windows 7, kanske är det någon annan som också skulle kunna ha användning för det.

http://fuskbugg.se/file/XTD8OO/nordea-gadget.png

Script.php:
PHP-kod:

<?php

$url 
'https://mobil.nordea.se/banking-nordea/nordea-c3/login.html';
$xyz "xxxx";    // Personnummer
$xyx "xxxx";     // Personlig kod

$ch curl_init();

$headers[] = "Accept: */*";
$headers[] = "Connection: Keep-Alive";

// basic curl options for all requests
curl_setopt($chCURLOPT_HTTPHEADER,  $headers);
curl_setopt($chCURLOPT_HEADER,  0);
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);         
curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0'); 
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
curl_setopt($chCURLOPT_COOKIEFILE'C:\xampp\cookies.txt'); 
curl_setopt($chCURLOPT_COOKIEJAR'C:\xampp\cookies.txt'); 

// set first URL
curl_setopt($chCURLOPT_URL$url);

$content curl_exec($ch);


preg_match('/<input type="hidden" name="_csrf_token" autocomplete="off" value="(.*?)" \/>/'$content$csrf_token);

$params http_build_query(array('_csrf_token' => $csrf_token[1], 'xyz' => $xyz'zyx' => $xyx));

curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS$params);

$result curl_exec($ch);
curl_close($ch);

require_once 
'simple_html_dom.php';
$html str_get_html($result);

echo 
$html->find('dd[class=account-list-right]'0)->innertext;
?>

Nordea.Gadget:
http://fuskbugg.se/dl/yW4Gvp/Nordea.Gadget.rar

Ni behöver ändra om i nordea.gadget så att scriptet är länkat rätt.
PMa om någon undrar något.

Jine 2013-05-03 20:43

Tänkte göra samma sak mot Swedbank bara för att Bankdroid slutat lira mot Swedbank - tills jag insåg varför. Deras mobilbank-sajt ligger nere...

Deras egna mobilapp fungerar dock, frågan är hur mycket jag vågar gräva i det egentligen. Något som vet hur det är juridiskt sett?
Trots allt inget egentligen dolt eller krypterat, vanligt HTTPS-trafik ifrån min mobiltelefon mot ett REST-API bara...

Det är odokumenterat och inte publicerat på deras sajt däremot, men API-endpointen är väl synlig i APK'ns resource-fil.
(hxxps://auth.api.swedbank.se/TDE_DAP_Portal_REST_WEB/****)


Alla tider är GMT +2. Klockan är nu 21:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson