{"id":202640,"date":"2018-03-27T07:35:53","date_gmt":"2018-03-27T05:35:53","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=202640"},"modified":"2018-03-27T07:55:04","modified_gmt":"2018-03-27T05:55:04","slug":"ios-kamera-app-mit-qr-code-url-parser-bug","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2018\/03\/27\/ios-kamera-app-mit-qr-code-url-parser-bug\/","title":{"rendered":"iOS: Kamera-App mit QR-Code URL Parser-Bug"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2012\/07\/Apple.jpg\" width=\"58\" align=\"left\" height=\"58\"\/>Die Kamera-App von iOS kann wohl automatisch QR-Codes \u00fcber die Kameras eines iPhone oder iPad erfassen. Leider gibt es ein Problem: Beim Scannen und anschlie\u00dfendem Auswerten der im QR-Code enthaltenen URL gibt es einen Bug. <\/p>\n<p><!--more--><\/p>\n<h2>QR-Code direkt in der Kamera-App scannen<\/h2>\n<p>Das direkte Scannen von <a href=\"https:\/\/de.wikipedia.org\/wiki\/QR-Code\" target=\"_blank\">QR-Codes<\/a> mit der iOS-Kamera-App <img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/f38cf4df6b1a4157afe8cd2c6e7e5f13\" width=\"1\" height=\"1\"\/>wird wohl ab iOS 11 unterst\u00fctzt (so ganz genau bin ich da, mangels aktuellem iOS-Ger\u00e4t nicht im Bilde). Das Scannen von QR-Codes direkt aus der iOS-Kamera-App ist eigentlich ganz nett, erspart sich der Nutzer doch die Installation separater Apps f\u00fcr diesen Zweck. Nach einem erfolgreichen Scan des QR-Codes mit einer URL auf ein Webseite bekommt der Nutzer sogar eine Benachrichtigung, dass die URL im Safari eingetragen wurde.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"Benachrichtigung beim Scan eines QR-Codes\" alt=\"Benachrichtigung beim Scan eines QR-Codes\" src=\"https:\/\/i.imgur.com\/UcjnbQ5.jpg\" width=\"521\" height=\"158\"\/><br \/>(Quelle: Robert Mueller rm-it.de)<\/p>\n<p>Hei\u00dft also: Schnell einen QR-Code mit der Kamera-App aufnehmen und nach der Benachrichtigung die zugeh\u00f6rige Webseite im Browser \u00f6ffnen. Allerdings sollte das dann auch funktionieren, was es aber wohl nicht tut (mangels aktuellem iOS-Ger\u00e4t kann ich nichts testen). <\/p>\n<h2>Es wird immer die gleiche URL ge\u00f6ffnet<\/h2>\n<p>Roman Mueller hat den Fall in <a href=\"https:\/\/infosec.rm-it.de\/2018\/03\/24\/ios-camera-qr-code-url-parser-bug\/\" target=\"_blank\">seinem Blog<\/a> beschrieben und in nachfolgendem GIF-Bildchen veranschaulicht. Der QR-Code-Scan mit der App funktioniert ganz gut \u2013 er versucht damit die Facebook-Seite zu \u00f6ffnen. Der QR-Code ist dabei auf einem Mac im Safari auf dem Bildschirm eingeblendet und wird mit einem iOS-Ger\u00e4t gescannt.<\/p>\n<p><img decoding=\"async\" title=\"Analyse QR-Code Scan iOS\" alt=\"Analyse QR-Code Scan iOS\" src=\"https:\/\/infosec.rm-it.de\/wp-content\/uploads\/2018\/03\/apple.gif\"\/>(Quelle: Robert Mueller rm-it.de)<\/p>\n<p>Beim Parsen der URL scheint aber etwas schief zu gehen, denn es wird immer seine eigene Webseite, unabh\u00e4ngig von der URL im QR-Code ge\u00f6ffnet. Es kommt zwar eine Benachrichtigung, dass facebook.com erkannt wurde. Aber es wird dann seine Webseite im Safari ge\u00f6ffnet. <\/p>\n<h2>Ein simpler Parser-Fehler der URL<\/h2>\n<p>Erst vermutete er eine Umleitung (Redirection) durch Facebook. Aber das ist nicht der Fall, wie er in seiner Analyse zeigt. Beim Scannen des QR-Codes mit der Kamera-App von iOS 11.2.1, wird die im QR-Code hinterlegte URL im Format:<\/p>\n<p>https: \/\/ xxx\\@facebook.com : 443@infosec.rm-it.de\/<\/p>\n<p>geliefert. Die Adresse seiner eigenen Webseite ist da wohl mit integriert, da auf dem iOS-Ger\u00e4t konfiguriert. F\u00fcr die Benachrichtigung wird noch der korrekte Teil der URL mit facebook.com herausgezogen. Im ge\u00f6ffneten Safari-Tab verwendet die Browser-App aber wohl den letzten Teil der URL, der auf die konfigurierte Homepage verweist. Die QR-Code-App ist weitgehen nutzlos. Er vermutet, dass die App den Teilstring xxx\\ als Nutzernamen interpretiert und den String xxx\\@facebook.com : 443 als login-Daten an die in der URL angeh\u00e4ngte Webseite schickt. <\/p>\n<h2>Apple reagiert nicht<\/h2>\n<p>Der Fehler wurde bereits am 23. Dezember 2017 an Apple gemeldet. Bis zum 24. M\u00e4rz 2018 ist der Bug noch nicht gefixt. K\u00f6nnte man achselzuckend zur Kenntnis nehmen \u2013 Apple eben. Die Geschichte hat aber einen ernsten Hintergrund, der den Apple-Leuten entgangen zu sein scheint. <\/p>\n<blockquote>\n<p>Nein ich meine nicht den Effekt, den ich mal als junger Mann bei einer Kollision mit einem T\u00dcV-Pr\u00fcfer erlebt habe. Der von mir montierte Nebelscheinwerfer an meiner Rostlaube funktionierte nicht. Also ich dem Pr\u00fcfer mitteilte: 'Ist doch kein Problem, das Teil ist nicht vorgeschrieben und wird nicht gebraucht', meinte dieser: 'Was angeschraubt ist, muss funktionieren, sonst gibt es die Plakette nicht'. Also habe ich auf der Pr\u00fcfstelle die Scheinwerfer schnell abgebaut, w\u00e4hrend der Pr\u00fcfer unter dem Wagen werkelte \u2013 und erhielt, da sonst keine M\u00e4ngel gefunden wurden, die Plakette. Ist mir im Ged\u00e4chtnis h\u00e4ngen geblieben, weil 'meine Theorien' damals so gar nicht mit den Vorstellungen dieses Pr\u00fcfers kompatibel waren. <\/p>\n<p>Die Episode ist mir in den letzten Jahren h\u00e4ufig im Bereich Software-Entwicklung ins Auge gesprungen. Gut, es gibt keinen verpflichtenden Software-T\u00dcV. Aber die SW-Entwickler scheinen h\u00e4ufig auf dem Pfad 'Die Funktion xyz geht nicht, kein Problem, ist ja eh kein Kernfeature, ist zwar dabei, brauchen wird aber nicht und wird auch nicht gefixt' unterwegs zu sein. <\/p>\n<\/blockquote>\n<p>Die im QR-Code versteckte URL der Art <\/p>\n<p>https: \/\/ xxx\\@facebook.com : 443 @ infosec.rm-it.de\/ <\/p>\n<p>bietet nat\u00fcrlich jede Menge Potential f\u00fcr Missbrauch. Cyber-Kriminelle k\u00f6nnten URLs in QR-Code verstecken, der die Leute im hinteren Teil der URL auf b\u00f6sartige Webseiten umleitet (diese F\u00e4lle gab es ja schon \u2013 Plakate wurden mit gef\u00e4lschten QR-Codes, die auf Malwareseiten verwiesen, \u00fcberklebt). <\/p>\n<p>Ich denke aber, dass sich da jetzt was bewegt, da die gr\u00f6\u00dferen US-Medien dar\u00fcber berichten. Frage: Jemand von euch, der den Bug nachvollziehen kann?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Kamera-App von iOS kann wohl automatisch QR-Codes \u00fcber die Kameras eines iPhone oder iPad erfassen. Leider gibt es ein Problem: Beim Scannen und anschlie\u00dfendem Auswerten der im QR-Code enthaltenen URL gibt es einen Bug.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1440,440,426],"tags":[419,4330,4344,4328],"class_list":["post-202640","post","type-post","status-publish","format-standard","hentry","category-app","category-ios","category-sicherheit","tag-bug","tag-ios","tag-kamera","tag-sicherheit"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/202640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=202640"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/202640\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=202640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=202640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=202640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}