Author Topic: Pfandbon Analyse  (Read 2508 times)

p

  • Global Moderator
  • Apache
  • *****
  • Posts: 110
  • Karma: +27/-0
    • View Profile
Pfandbon Analyse
« on: March 07, 2014, 09:41:46 am »
Die Links sind leider größtenteils down..
Anyway, was meint ihr dazu?

##########

Vor ein paar Tagen habe ich wieder so eine News gelesen, wie sie bestimmt die meisten kennen: "Pfandfreie Flaschen -> Pfandflaschen", "Schon wieder Flaschenmanipulateur geschnappt", .. usw
Was ich mich danach fragte war: Wieso liest man so viel über die Manipulation von pfandfreien Flaschen? Wieso hat man noch nie etwas über die Manipulation der Pfandbons gelesen?!

Nach einer Zeit des googelns (Man musste sich durch eine große Zahl von News von irgendwelchen Leuten die Flaschen bearbeiten und von Leuten die wegen einer Unterschlagung von 1,30€ gefeuert wurden (Genau genommen hat eine nette Kassiererin 2 oder 3 Pfandbons gefunden, sie eingelöst und wurde daraufhin nach einer Dienstzeit von mehr als 30 Jahren (oder so) gefeuert) graben) habe ich endlich etwas interessantes gefunden.
Ich bin nämlich auf den Blog von Sebastian Schneider gestoßen.
Dieser hat auf seinem Blog eine siebenteilige Postfolge veröffentlicht, in denen er zu den gleichen Gedanken wie ich sie hatte, Nachforschungen anstellte:
http://www.schneseb.de/blog-sebastian-schneider/?p=271
http://www.schneseb.de/blog-sebastian-schneider/?p=309
http://www.schneseb.de/blog-sebastian-schneider/?p=324
http://www.schneseb.de/blog-sebastian-schneider/?p=335
http://www.schneseb.de/blog-sebastian-schneider/?p=344
http://www.schneseb.de/blog-sebastian-schneider/?p=358
http://www.schneseb.de/blog-sebastian-schneider/?p=449
Ein weiteres nettes Dokument habe ich entdeckt, welches vom CCC geschrieben wurde: http://events.ccc.de/congress/2007/Fahrplan/events/2273.en.html

Anschließend entschloss ich mich, zum Supermarkt um die Ecke (Erstmal zu Penny  :ugly2;) zu gehen um mir einen Pfandbon zu besorgen.
Wieder hier angekommen, trank ich erstmal einen großen Schluck Cola und untersuchte anschließend den Bon.
Dank der Informationen von Sebastian Schneider konnte ich schnell mit eddy14, mit welchem ich Gedanken zu der Funktionsweise des Automaten weiterführte und so viele Ideen bekam, einen Großteil des Strichcodes analysieren.

Der Strichcode ist 24 Zeichen lang und ein http://www.barcode.de/barcode/glossar/E/EAN128.php?cat=Glossar/E, welcher dem "Code 128" weitgehendst entspricht.
-Die letzten 6 Zeichen entsprechen dem Pfandbetrag.
-Die 5 Zeichen vor dem Pfandbetrag sind die Nummer des Pfandbons
-Die 2 Zeichen vor der Nummer sind bisher unidentifiziert, steigen aber wahrscheinlich in 10er Schritten
-Die 6 Zeichen vor den 2 unidentifizierten Zahlen sind wahrscheinlich die "ID" der Filiale des Marktes und stehen folglich unverändert auf jedem Bon.
--Die restlichen 5 Zeichen konnte ich bisher auch nicht wirklich zuordnen, es wäre aber möglich, dass es eine Länderkennung ist oder vielleicht auch die ID des Automaten. Auch hier stehen die 5 Zeichen stehen auf jedem Bon.

Um nun sagen zu können, ob der Bon sicher ist - oder eben nicht - bräuchte man mehr Informationen.
Wenn eine Verbindung zwischen dem Automaten und den Kassensystemen besteht (eine Datenbank?), was wird gespeichert?
Besteht keine Verbindung, gibt es vielleicht trotzdem eine Datenbank für die Kassensysteme, die speichert welcher Bon (Nummer) schon benutzt wurde.
Da mir diese Informationen fehlten, machte ich mich erneut auf dem Weg zum Supermarkt (1 Tag später) um mir den Firmennamen der Automaten aufzuschreiben (und noch eine Cola zu kaufen :P).
"digi repant"
digi ist die Firma, die die Automaten vertreibt, aber repant ist die Firma, welche die Automaten herstellt und uns mehr interessiert.
Ab nach: http://www.repant.no/echo/repant_en/

Nachdem ich unter Products -> Reverse Vending Machines zwar meinen Automaten fand (der unterste), aber keine Informationen, ging ich weiter zu der Kategorie: http://www.repant.no/repant_en/products/administra/ und fand direkt einige wirklich nützliche Informationen.

Quote
Standard technology
RCC provides an easy to use graphical user interface for all operations.
The system is based on standard Microsoft SQL Server database and network technology, making it easy to integrate RCC with other systems. The multi-tier implementation allows the system to scale to handle a large number of RVMs.
--Es gibt also tatsächlich eine Datenbank, welche wahrscheinlich mit dem Kassensystem verbunden ist!
Jetzt ist aber die Frage: Was wird gespeichert?! Das es eine Datenbank gibt bedeutet ja nicht, dass die Pfandbons sicher sind.

Diese Frage sollte sich aber bald als "nicht wohlüberlegt" (wie mein alter Physiklehrer immer so schön sagte ;D) herausstellen.
Bei meinen ganzen Überlegungen habe ich vergessen, etwas zu berücksichtigen.
Ich bin bisher immer davon ausgegangen, dass nur Teile des Strichcodes gespeichert werden.
Also zum Beispiel hätte es laut dieser Überlegung sein können, dass es in einer Tabelle die Spalten "Nummer", "Filiale", und "Benutzt" geben.
Wenn man nun davon ausgeht dass: Nummer = 1337, Filiale = 666, Benutzt = nein
Und den Betrag auf die Pfandbon ändert, hätte man immer noch mit dem Pfandbon an der Kasse den geänderten Betrag abheben können, da nur überprüft werden würde: <em>Ist die Nummer vorhanden? Ist der Bon schon einmal benutzt worden? Bin ich hier in der richtigen Filiale?</em>
ABER, wenn der ganze Strichcode gespeichert wird, also diese 24 Zeichen in meinem Fall, dann müsste der Pfandbon theoretisch sicher sein.
Bei dem Einscannen des Bons an der Kasse würde eine Anfrage an die Datenbank gestellt werden, die frägt ob es diesen EAN 128 Code gibt.
Wenn es ihn gibt, wird aus dem Code aus den letzten 6 Zeichen der Betrag ausgelesen, welcher gutgeschrieben werden soll.

Im Grunde dürfte man dann keine Chance haben, den Pfandbon manipulieren zu können, denn wenn man nun etwas in dem Code ändert, wird er nicht mehr in der Datenbank gefunden, die Kasse piepst und will den Bon nicht akzeptieren.
Die nette oder unfreundliche und unwissende Kassiererin gibt den Code von Hand ein (die Zahlen unter dem Strichcode sind genau dazu da, da sie den Strichcode in für uns lesbare Zeichen darstellen). Die Kasse würde erneut piepsen und streiken.
Unwohl breitet sich in im Gesicht der Kassierin aus, die anderen Leute in der Schlange werden ungeduldig.
Die nette oder unfreundliche Kassiererin ruft den Chef, sie teilt ihm in einem überaus hohem Ton (Ich glaub Fledermäuse würden, wenn sie redet, gegen eine Wand fliegen) mit, was passiert ist.
Der Chef überprüft das ganze jetzt noch einmal selbst, die anderen Leute werden immer ungeduldiger.
"Kommen se mal mit nach hinten", fordert er auf.
Im Endeffekt läufts darauf raus, dass man eine Klage wegen Betrug am Hals hat :D

Wie bin ich drauf gekommen, dass der ganze Strichcode in einer Datenbank gespeichert wird?
http://online.repant.com/index.php?value=TextEng - Hier ist scheins ein ACP für die Automaten.
Dort gibt es einen DemoAccount (demo-e:demo).
Im ACP angekommen gehts nach Database -> Seach EAN
Das folgende brachte mich auf den Gedanken, dass einfach der ganze Code gespeichert wird.
(btw ist dieses ganze ACP sehr buggy (LFI, SQL Injection und bestimmt noch mehr))

*************************************

Das wars jetzt auch schon - das ganze geschriebene ist bisher nur Theorie. Getestet habe ich keine Vermutungen, da allein die Drucker um das Papier (Thermopapier) bedrucken zu können mind. 80€ kosten.

fraggle

  • the breaker
  • Global Moderator
  • Apache
  • *****
  • Posts: 118
  • Karma: +17/-0
    • View Profile
Re: Pfandbon Analyse
« Reply #1 on: March 07, 2014, 10:20:34 am »
Super Analyse! Hab hier noch einen passenden Vortrag vom 24c3:
Desperate House-Hackers: How to Hack the Pfandsystem :)


Und das hier sind die Vortragsfolien:
http://events.ccc.de/congress/2007/Fahrplan/attachments/1004_24c3-pfandhacking.pdf
May the Force be with you.

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Re: Pfandbon Analyse
« Reply #2 on: March 07, 2014, 12:05:56 pm »
Ahhh vielen Dank. Wer von uns darueber wohl nicht jedes einzelne mal nachdenken musste, waehrend er/sie Flaschen in einen dieser Automaten gestopft hat!?  :ugly2; Endlich kann ich meine Zeit beim Flaschen in den Automaten stopfen damit verbringen wie schoen es waere anstatt einen Bon auf Todholzpapier zu drucken der dann 10m weiter wieder eingescannt wird sein Smartphone den QR Code vom Automatendisplay zu scannen und so die Cryptocoins in Pfandhoehe abzurufen.

freak_out

  • Hoffnungslose Technikniete
  • Global Moderator
  • Network News
  • *****
  • Posts: 158
  • Karma: +31/-0
  • Von den Frühstücksflocken
    • View Profile
    • freak
Re: Pfandbon Analyse
« Reply #3 on: March 07, 2014, 12:26:08 pm »
Bin ich eigentlich der einzigste der dabei an den Pfandflaschensammel Bot von Pennergames damals denkt? :D

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Re: Pfandbon Analyse
« Reply #4 on: March 07, 2014, 01:29:16 pm »
yipp. sorry. nie gespielt. Browsergames hab ich nie länger als ne Woche durchgehalten ohne irgendwelche injections zu fahren, bots zu schreiben oder malware per PM zu verschicken :|

p

  • Global Moderator
  • Apache
  • *****
  • Posts: 110
  • Karma: +27/-0
    • View Profile
Re: Pfandbon Analyse
« Reply #5 on: March 07, 2014, 01:37:22 pm »
yipp. sorry. nie gespielt. Browsergames hab ich nie länger als ne Woche durchgehalten ohne irgendwelche injections zu fahren, bots zu schreiben oder malware per PM zu verschicken :|

replace('Browsergames', 'Das Leben');

Story of my life.