“Ein genialer Hack!” oder “SQL im Supermarkt?”
Ich habe öfter mit Barcodes zu tun.
Öfter heißt in diesem Fall jeden Tag und Barcodes heißt Code 128, Code 39, Code 2aus5, Datamatrix, Qr und Aztec
In den unendlichen Weiten des Internets ist mir ein genialer Hack über den Weg gelaufen. Obwohl ich wirklich oft mit den Dingern arbeite, bin ich noch nie auf so eine geniale, fast schon bombastische, Idee gekommen.
Wie immer erst mal ein paar Basics:
Es gibt zwei Sorten von Barcodescannern.
- Laserscanner oder Pen-Scanner
Diese besitzen eine Diode oder ein Laser der einen Strich über die Barcodefläche zeichnet. Das reflektierte Licht, wird von einem CCD-Sensor im Inneren aufgefangen.
Dieser spuckt an seinem Ausgang ein Signal aus, Impulsen aus welche man wiederum in die enthaltenen Daten interpretieren kann. - Kamerascanner
Sie haben eine kleine Digicam im Inneren, der Barcode wird abfotografiert und dann das Bild ausgewertet. Diese Scanner könne nicht nur eindimensionale Barcodes wie auf der Käsepackung lesen, sie können auch 2D Codes wie zum Beispiel QR oder Datamatrix entschlüsseln.
Jetzt kommt der Kracher:
Die Laserscanner, welche leider nicht mehr so verbreitet (von Supermarktkassen mal abgesehen HeHeHe) besitzen einen sehr interessanten Angriffsvektor.
Wie schon beschrieben, lesen sie den Barcode indem sie die Impulse des zurückgeworfenen Lichts interpretieren.
Wenn ich jetzt LED sage, habt ihr sicher schon die Zündende Idee dahinter erkannt

Man könnte doch eine LED so ansteuern, dass sie dem Scanner vorgaukelt, ihr ausgesendetes Licht, wäre die Reflektion von einem gescannten Barcode.
So kann man dem Scanner "aus der Ferne" eigene Daten unterschmuggeln.
Das Device im Bild oben, tut genau das.
Ja ja ich hör euch schon sagen: "Na toll und was soll das bringen?"
Ganz einfach, was macht wohl die Supermarktkasse wenn sie einen Barcode gescannt hat?
Richtig! Einen Select auf der DB um den Preis der Wahre heraus zu finden.
Was, wenn der Scanner der Kasse zum Beispiel
0815123456;DROP DATABASE;
scannt und diese Daten ohne weitere Prüfung in die SQL-Abfrage packt?
Ein wunderschönes Beispiel für SQL-Injektion.
Wenn ihr damit mal etwas Spaß haben wollt, könnt ihr euch so ein Device ganz einfach selbst basteln. Die Pläne und den Sourcecode findet ihr auf der Seite des Erfinders. Dazu gibt es noch ein tolles Cheat Sheet, mit dem ihr ein paar gängige Atacken austesten könnt.
Hättet ihr noch ein paar ideeen was man damit anstellen könnte?
Hack The Planet!!!
thinkJD
Folge mir auf Twitter
- Das Neueste Gadget meiner Mutter macht sich mit einem leisen "Mööööö" bemerkbar. #Geek http://t.co/6V3YCqqD 3 hrs ago
- Wer kommt auf die ACTA Demo am 11.02. in Mannheim am Schlossplatz 14:00 Uhr? Man könnte ein kleines Twitter Treffen draus machen. 5 hrs ago
- Es ist mal wieder Zeit für eine Empfehlung. iCatcher ist die mit Abstand beste Podcast App fürs iPhone. (meine Meinung) 7 hrs ago
- Vervollständige _ALL_ The Song-Tweets. 18 hrs ago
- Na Super, fünf verschiedene Markenkondome aber keine TravelPussy ... 20 hrs ago
- Kostüm des Abends von @mrb4zinga http://t.co/1JK0zLOY 21 hrs ago
- .@Madame_Hutch s Lieblingsgeste. Bedeutet -> Maul halten, Ohren spitzen! http://t.co/dblCgUZC 22 hrs ago
- More updates...
Letzte Kommentare
- Evi mit dem Fahrrad bei Roboter fährt Fahrrad
- thinkJD bei “Ein genialer Hack!” oder “SQL im Supermarkt?”
- hannes bei “Ein genialer Hack!” oder “SQL im Supermarkt?”
- thinkJD bei “Ein genialer Hack!” oder “SQL im Supermarkt?”
- zoid bei “Ein genialer Hack!” oder “SQL im Supermarkt?”
Zufallsartikel
- Neues vom BigDog
- Ein Loblied auf den Pastebot
- Was trinkt der gemeine Hacker?
- HILFE! GIT auf eigenem Webspace
- "Manufacturing your design" by Mitch Altman
- Das Cybraphon
- Wie funktioniert ein Sternenprojektor?
- Papa, warum spinnt der Fernseher?
- StyroFoamRobot
- The Humble Indie Bundle #2
Kategorien
- Allgemein
- Bauelemente
- Begriffserklärung
- Coding
- Das Internet ist schuld!
- Geek
- Geek ist
- Kurzfilme
- Maschinen und Apparate
- Netzfundstücke
- offensichtlich?
- Social
- Tipps
- Über mich
Blogroll
- Fernsehkritik.TV (Blogroll) (0)
- Jojos Blog (Blogroll) (0)
- asuROCKS.de ? ART, GAL STYLE and UBER CUTE STUFF (Blogroll) (0)
- Caschys Blog (Blogroll) (0)
- e13.de (Blogroll) (0)
- Das Kraftfuttermischwerk (Blogroll) (0)
- - = silbenblog.de = - (Blogroll) (0)
- Shakkes' Blog (Blogroll) (0)
- Madame_Hutch (Blogroll) (0)
- Pharmama's Blog - Zu lesen einmal täglich (Blogroll) (0)
- niemehrschule (Blogroll) (0)
- Masterbots Blog (Blogroll) (0)
- Fefes Blog (Blogroll) (0)
- Gilly's playground (Blogroll) (0)
- Bestatterweblog (Blogroll) (0)
Twitter: NerdTrash
September 3rd, 2010
Hm. Ein sehr netter Gedanke! Ich kann mir aber nicht vorstellen, dass das ernsthaft funktioniert. Oder anders gesagt: Es wird funktionieren, wenn die Kassiererin das Ding vor lauter Dummheit scannt, die LED somit ins Sichtfeld des CCD bringt, und dabei ein der Datenbank bekannter Code gesendet wird (zB. für ein anderes Produkt). Für Brute-Force im eigentlichen Sinne wird es sicherlich nicht ausreichen.
Vielleicht sind Supermarktkassen ja so einfach gestrickt, ich würde aber als Entwickler darauf achten, dass der Scanner keinesfalls ein DB-Statement schickt, sondern würde einen Layer einführen, der die Scanner-Signale auf DB-Statements mappt und ungültige Signale verwirft. Somit kann genau das verhindert werden.
Aber wie gesagt, mag sein, dass Supermarktsysteme recht einfach gestrickt sind, und auf Sicherheit kein Wert gelegt wird, weil solche Angriffe bisher unbekannt sind.
Twitter: thinkJD
September 3rd, 2010
Scannen musst du das Teil nicht, es muss nur in die Nähe kommen. Das CCD ist immer “auf Empfang” nur der Laser wird über Polygonspiegel in alle Richtungen abgelenkt. Ein Blinksignal in richtiger Frequenz wird auch aus der Ferne den gewünschten Effekt erzielen.
Ich hab natürlich keine Ahnung, wie ein so ein Kassensystem gestrickt ist, es wird wohl nicht so einfach sein vor allem, weil jeder Entwickler als erste Grundregel lernt, eine Injection zu vermeiden.
Aber vielleicht wäre es auch an anderen Stellen denkbar, man könnte eine Tür mit Barcodescanner bruteforcen oder so ein Pay-back ich druck dir Punkte aus Terminal oder oder oder
Twitter: NerdTrash
September 4th, 2010
Ich dachte wir reden von den Scanner-Pistolen von damals. Die benötigen das Ding direkt vor sich. Die anderen Scanner arbeiten mit Polygonspiegeln, das ist richtig.
Aber ich hab den Gedankengang schon verstanden
Auch diese Was-kostet-das-nochmal-Terminals würden sich anbieten, wo man Dinger dranhalten kann, um zu erfahren was die kosten würden. Da könnte man dann erstmal den Preis korrigieren.
Twitter: thinkJD
September 4th, 2010
LOL! Stell dir das mal vor!
Moment, ich muss nur noch schnell nach dem Preis für dieses 15Klingen-Super-Duper Rasierdingsbums gucken.
*Biep*
Cool 1,50€
Ich brauch so ein Teil und einen Entwickler solcher Automaten, der etwas aus dem Nähkästchen plaudert
Januar 18th, 2012
…. warum kann man sich dafür nicht einfach eine barcode auf ‘nem zettel erstellen, wenn man damit über jeden scanner im markt die db droppen kann?
Weils nicht geht…?
Twitter: thinkJD
Januar 18th, 2012
Du hast das falsch verstanden. Die DB wirst Du wahrscheinlich nicht droppen können. Es geht eher darum, den Scanner aus der Ferne dazu zu bringen, irgendwas™ zu scannen.
Das Drop Database Beispiel war nur eine Überspitzung um das Potenzial zu verdeutlichen.
Januar 26th, 2012
prdukt für 1 € nehmen den barcode nehemn auf 15€ prduk drauf geht doch.
Twitter: thinkJD
Januar 31st, 2012
Dann klebt ein Barcode auf dem Produkt …