Studweb karakter varsler NTNU

Er du lei av å logge inn på studentweb hver dag og sjekke etter nye karakterer? La heller et program gjøre jobben for deg. Dette php scriptet logger inn og sjekker etter nye karakterer hvert 30. minutt, og varsler deg på sms når du har fått en ny karakter.

Den sms’en du får er generert av inpoc.no, og kommer til å si at din kode for innlogging er “xxxx”, men glem det, poenget er at du blir varslet per sms.

For å kunne kjøre koden må php være installert. Last f.eks. ned wamp. Bla deg fram til mappen der filen med kode ligger, og skriv “php studweb.php”.

studweb karakter varsler
Ofte stillte spørsmål
1. Jeg får opp php gjenkjennes ikke som en intern eller ekstern kommando,
kjørbart program eller satsvis fil.” når jeg prøver å kjøre koden.”

SVAR: Php må være installert, i tillegg må du sette en PATH. D.v.s. at cmd kan nå php.exe fra hvorsom helst i cmd. Høyreklikk min datamaskin -> Avanserte systeminnstillinger -> Miljøvariabler -> Ny -> Variabelnavn skal være “Path” og variabelverdi skal være plassering av php.exe. Til meg er den “C:\wamp\bin\php\php5.3.0″.

2. Når jeg kjører koden får jeg “PHP Fatal error: Call to undefined function curl_init(). SVAR: Åpne php.ini som ligger i samme mappe som php.exe. Søk deg fram til linjen som inneholder “extension=php_curl.dll”. Fjern det semikolonet som er forran.

Last ned koden fra .txt eller kopier herfra:

<?php

## Logger innpå studweb og sjekker for nye karakterer.
## Det brukes her personnummer og pin.

// Config
$nr = "xx"; // personnummer
$pin = "xxxx";
$cell = "xx"; // tlf nummer
$fag = array("exph0001", "ma1103"); // fagkoder. Kun småebokstaver!

$cookie = "c.txt";

function login()
{
	global $cookie;

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no/cgi-bin/WebObjects/studentweb2?inst=NTNU");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);

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

	// Finner token som trengs til innlogging

	preg_match_all("/(\d){8}/", $data, $match);
	$token = $match[0][0];

	$fp = fopen("a.html", "w");
	fwrite($fp, $data);
	fclose($fp);

	login2($token);
}

function login2($token)
{
	global $cookie;
	global $nr;
	global $pin;

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no/cgi-bin/WebObjects/studentweb2.woa/wa/login");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);

	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, "fodselsnr={$nr}&pinkode={$pin}&transnr={$token}&login=Logg%20inn&javascript=0&inst=NTNU");

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

	// Finner url som trengs til å klikke på _Innsyn_

	preg_match_all("/ater m\.m\.\" href=\"(.+?)\"/", $data, $match);
	$url = $match[1][0];

	$fp = fopen("b.html", "w");
	fwrite($fp, $data);
	fclose($fp);

	login3($url);
}

function login3($url)
{
	global $cookie;

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no" . $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);

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

	// Finner token som trengs til å klikke på _Resultater_

	preg_match_all("/Se dine resultater\" href=\"(.+?)\"/", $data, $match);
	$url = $match[1][0];

	$fp = fopen("c.html", "w");
	fwrite($fp, $data);
	fclose($fp);

	login4($url);
}

function login4($url)
{
	global $cookie;
	global $fag;

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no" . $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);

	$data = strtolower(curl_exec($ch));
	curl_close($ch);

	// looper igjennom og ser etter fagkodene

	$i = 0;
	while($fag[$i])
	{
		if( strpos($data, $fag[$i]) )
		{
			echo "\nVarsler.. $fag[$i] \n";

			unset($fag[$i]); // fjerner faget fra array
			varsle();
		}
		else
		{
			echo "#";
		}

		$i++;
	}

	$fp = fopen("d.html", "w");
	fwrite($fp, $data);
	fclose($fp);

}

function varsle()
{
	global $cell;

	// sender en sms til mobil

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'http://folk.inpoc.no/registrer/');
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS,"cellnumber={$cell}&x=36&y=5&_aspiro_service=Login&_aspiro_service_method=registerSystemUser&_aspiro_service_onsuccess=step2.ftl&_aspiro_service_onsuccess_forward_parameter=cellnumber");
	$data = curl_exec($ch);

	curl_close($ch);
}

while(1)
{
	login();

	sleep(1800); // 30 mins
}

?>

Del på Facebook
Del på Twitter
Legg til på Nettby









Dette innlegget ble skrevet på Thursday, January 7th, 2010. Og er lagret under PHP, Programmering. Skumma gjennom av 673 stykker.

3 Responses to “Studweb karakter varsler NTNU”

  1. Mats on January 10th, 2010 at 5:32 am

    ikke dårlig. men har fått alle karakterene mine. Måtte uansett ha forandret et par ting pga at jeg går på UiO

  2. Skogtrollet » Hvordan hacke en login? on January 17th, 2010 at 3:47 am

    [...] Til neste innlegg skal jeg lage en video der jeg viser hvordan jeg brutforca meg fram til passordet. Har du problemer med å legge inn php, eller å gå koden til å kjøre? Sjekk ut ofte stilte spørsmål i denne teksten: Studweb karaktervarsler [...]

  3. Petter on January 28th, 2010 at 5:57 pm

    Har fått alle karakterene, men bra tips. Får bruke det til sommeren igjen.

Legg igjen en kommentar