


Beispielanalyse zur Entdeckung von Chat-Anwendungsschwachstellen in der Smart-Toy-APP „Thomas the Tank Engine'.
Hintergrund zur Fehlererkennung
ToyTalk ist ein Spielzeug-Startup mit künstlicher Intelligenz, das von ehemaligen Pixar-Führungskräften gegründet wurde. Sie entwerfen intelligente Spielzeuge mit visuellen Tracking-, Spracherkennungs- und Netzwerkerweiterungsfunktionen, um Kindern die Kommunikation per Sprache zu ermöglichen Durch die Erkennung von Verhaltensreaktionen zwischen der APP und den Spielzeugen können Kinder ihre Fähigkeit, mit virtuellen Charakteren zu sprechen, stimulieren und den Spaß an der Interaktion mit Spielzeugen besser erkennen.
ToyTalk hat im Juli 2015 eine kostenpflichtige APP namens „Thomas & Friends Talk To You“ gestartet, die es Kindern ermöglicht, mit bekannten Cartoons zu chatten. Interaktiver Chat mit der Figur „Thomas the Tank Engine“, was ermöglicht Kinder, um mit Thomas und seinen Freunden Percy, Gordon, Henry, James, Edward, Toby, „Fat“ und Thomas während 8 Geschichtenreisen zur Insel Sodor zu interagieren, führte Herr Topham Hatt, der General Manager, einen wechselseitigen Dialog .
Um die Sicherheit von ToyTalk-Spielzeugprodukten und die Sicherheitsrisiken zu testen, die durch den Zugriff auf die Heimnetzwerkumgebung entstehen, habe ich beschlossen, einen wechselseitigen Dialog mit „Thomas“ und „His Friends Chat with You“ zu führen " APP, um einige Analysen und Recherchen durchzuführen. Da ToyTalk-Produkte alle dieselbe Codebasis verwenden und diese Thomas Talk-APP einfach zu installieren und zu entfernen ist, eignet sie sich zum Testen und kann auch repräsentativ sein. Darüber hinaus können andere ToyTalk-Produkte wie z Hello Barbie und Barbie Hello Dreamhouse weisen möglicherweise auch die gleiche Schwachstelle 1 auf: – Fehlender Authentifizierungsmechanismus, Angreifer kann leicht vorgeben, ein Kind zu sein, um mit Thomas Toy zu sprechen
# Schwachstelle 2: – Kann so tun Seien Sie support@toytalk.com oder andere registrierte Benutzer, um Injektionen mit bösartigem HTML-Phishing-Link per E-Mail zu senden Wenn die APP „Freunde chatten mit dir“ gestartet wird, ist eine Eingabe erforderlich, um eine E-Mail-Adresse des Elternteils bereitzustellen #Zuerst haben Sie möglicherweise das Gefühl, dass die von dieser APP bereitgestellte Angriffsfläche sehr begrenzt ist, da eine Bestätigungserlaubnis erforderlich ist, um mit dem Spielzeug zu kommunizieren
Als nächstes werde ich das Surfen im Internet der APP blockieren . Bei der Analyse wurde festgestellt, dass diese APP sich von anderen Anwendungen dadurch unterscheidet, dass sie ein Zertifikat zur Authentifizierung mit dem Client bereitstellt. Mit anderen Worten: Es findet ein gegenseitiger Authentifizierungsprozess zwischen der APP und ihrem WEB-Server statt. , müssen wir uns zunächst den Funktionsmechanismus des Client-Zertifikats und der damit verbundenen Passwortüberprüfung ansehen Nach dem Umkehren haben wir festgestellt, dass die folgenden zwei Funktionen interessanter sind:public void setSslClientCertificate(String filename, String passphrase) { InputStream file = null; try { KeyStore store = KeyStore.getInstance("PKCS12"); file = this.mContext.getResources().getAssets().open(filename); store.load(file, passphrase.toCharArray()); this.mClientCertificate = KeyManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); this.mClientCertificate.init(store, new char[0]); } catch (Exception e) { Log.OMG(e); } finally { Utils.close(file); } }Nach dem Login kopierenDanach habe ich, anstatt die Passworteingabefunktion weiter zurückzuentwickeln, das folgende Python-Skript mit der Frida-Hook-Funktion verwendet, um Passwörter und Dateinamen zu sichern und tiefer zu graben:public void setSslCaCertificate(String filename, String passphrase) { InputStream file = null; try { KeyStore store = KeyStore.getInstance("BKS"); file = this.mContext.getResources().getAssets().open(filename); store.load(file, passphrase.toCharArray()); this.mCaCertificate = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); this.mCaCertificate.init(store); } catch (Exception e) { Log.OMG(e); } finally { Utils.close(file); } }Nach dem Login kopieren
import frida import sys def on_message(message, data): print message device = frida.get_device_manager().enumerate_devices()[-1] pid = device.spawn(["com.toytalk.thomas"]) print (pid) session = device.attach(pid) ss = ''' Java.perform(function () { var MyClass = Java.use("com.toytalk.library.HttpRequester"); MyClass.setSslCaCertificate.overload("java.lang.String","java.lang.String").implementation = function(a,b){ send(a); send(b); return this.setSslCaCertificate.overload("java.lang.String","java.lang.String").call(this,a,b); } MyClass.setSslClientCertificate.overload("java.lang.String","java.lang.String").implementation = function(a,b){ send(a); send(b); return this.setSslCaCertificate.overload("java.lang.String","java.lang.String").call(this,a,b); } }) ''' script = session.create_script(ss) script.load() script.on('message', on_message) device.resume(pid) #session.detach() sys.stdin.read()
Glücklicherweise kann es daraus extrahiert werden Die apk-Datei mit dem richtigen Authentifizierungszertifikat kann zur Durchführung eines Man-in-the-Middle-Angriffs (MITM) verwendet werden. Interessanterweise ist die Datei „toystalk.12“ nicht durch ein Passwort geschützt.
Client-Zertifikate können jetzt verwendet werden, der Zertifikat-Pinning-Mechanismus muss jedoch noch umgangen werden. Obwohl es viele Möglichkeiten gibt, dies zu erreichen, ist es am einfachsten, das Zertifikat in der APK zu löschen, das Programm neu zu erstellen und neu zu installieren. Importieren Sie das Client-Zertifikat in Burpsuite, um die Zertifikatsperrfunktion zu deaktivieren. Danach können wir mit dem ersten Schritt der meisten APP-Programmtests beginnen – dem Abfangen des Datenverkehrs.
Schwachstellenanalyse
Schwachstelle 1 – Fehlender Authentifizierungsmechanismus
Das APP-Programm bietet auch eine weniger offensichtliche Funktion, nämlich die Audioaufzeichnung Die Datei der Konversation wird online gespeichert und kann später von den Eltern abgerufen werden. Diese Funktion ist an die E-Mail-Adresse gebunden, die für die vorherige Autorisierung verwendet wurde, obwohl diese E-Mail-Adresse nur verwendet wird, wenn der Elternteil ein Passwort zurücksetzt.
Wenn die Schaltfläche „Sprechen“ gedrückt wird, sendet die APP die aufgenommene Audiodatei mit der folgenden POST-Anfragemethode an den Remote-Webserver: # 🎜🎜#
https://asr.2.toytalk.com/v3/asr/0673bcb8-367a-44bc-aed5-8c21fb7086af/thomas/1502714441?account=
虽然其中的发送内容涉及很多变量值,但通过把当前用户ID更改为其它用户ID后,就能把音频文件发送到指定的用户账户名下,这将会允许一些恶意攻击者向儿童父母发送一些淫秽音频信息。
在这种情况下,虽然用户ID是一个随机的全局惟一标识符(GUID),但我们可以根据邮箱地址等已知线索来发现一些有效的用户ID信息。
此外,通过在ToyTalk代码库上运行“strings”命令,我们也可以找到一些线索:
所以,根据上图信息,一旦客户端证书被安装到浏览器中后,通过访问地址:
https://api.toytalk.com/v3/account/
就能下载到一个包含用户ID的文件。有用户ID信息在手,就能更改POST请求中的ID信息,将对话音频发送到任何注册了该APP的邮箱地址中去。修复该漏洞的方法是要求提供正确的设备ID和相关联的用户ID。我们还没测试设备ID是否能以其它方法获取,但要向某个用户账号添加一个设备ID,貌似需要访问到关联的邮箱地址才行。
漏洞报送进程
2017.8.14 - 向ToyTalk报告漏洞
2017.11.16 - 被分类为一般漏洞并被初次修复,变为closed状态
2017.11.29 - ToyTalk再次测试发现漏洞仍然存在,并重置为reopen状态
2017.12.8 - 完全修复漏洞
2017.12.18 - 漏洞赏金发放并关闭漏洞报告
漏洞2 - 可向ToyTalk邮件中注入恶意HTML框架
几天过后,我的朋友建议我学习一下ToyTalk的邮箱注入机制,这是在提交漏洞1后发生的。在使用诸如“Thomas And You”等APP应用注册设备时,它会将一封电子邮件发送到用户提供的邮箱地址中, 由于该电子邮件中包含了用户信息(设备名称),如果攻击者利用漏洞1方法获取到受害者的用户ID之后,那么,接下来可以修改电子邮件HTML中包含的设备名称,以该受害者用户ID为可信发件人,向其它受害者发送恶意钓鱼邮件,或任意更改过的邮件内容。
为了向受害者发送钓鱼邮件,攻击者先要用邮箱在该APP上进行注册,利用该注册邮箱地址,再用漏洞1方法获取到受害者用户ID,用以后续进行钓鱼邮件发送。
也即,首先,攻击者用受害者注册过的邮箱地址,执行以下请求,以获取到相应的受害者用户ID:
GET /v3/account/<email> HTTP/1.1 User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.1; ONEPLUS A3003 Build/NMF26F) Host: api.2.toytalk.com Connection: close</email>
然后,再以该用户ID为可信发件人,用以下POST方式,向其它受害者发送包含钓鱼链接的恶意邮件内容:
POST /v3/account/<accountid>/email/consent?device_id=asdf&device_name=TEST%20DEVICE"%20<a>click%20here</a>&application=Thomas+And+You&always HTTP/1.1 Content-Type: text/plain Content-Length: 0 User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.1; ONEPLUS A3003 Build/NMF26F) Host: api.2.toytalk.com Connection: close</accountid>
以上只是一个简单的PoC示例,它利用标签将HTML链接注入到邮件内容框架中,但如果花时间调整,也可以精心制作出一个更具迷惑性的钓鱼邮件来,例如,某位家长可以假冒support@toytalk.com邮件来欺骗其它家长的用户名密码信息。以下邮件内容包含钓鱼链接,是我们冒充toytalk官方发送的:
漏洞报送进程:
2017.12.4 - 提交漏洞
2017.12.12 - 官方致谢
2017.12.18 - 官方修复漏洞
2017.12.18 - 发布赏金并关闭漏洞报告
整体来说,两个漏洞的利用方式都存在一定的受限条件,但也侧面说明了大量APP在开发过程中忽视了全面的安全考虑。
Das obige ist der detaillierte Inhalt vonBeispielanalyse zur Entdeckung von Chat-Anwendungsschwachstellen in der Smart-Toy-APP „Thomas the Tank Engine'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie erhalte ich eine Authentifizierung mit echtem Namen in der Jingdong Mall APP? Jingdong Mall ist eine Online-Shopping-Plattform, die viele Freunde häufig nutzen. Vor dem Einkaufen ist es am besten, dass jeder eine Authentifizierung mit echtem Namen durchführt, damit er den vollständigen Service genießen und ein besseres Einkaufserlebnis erhalten kann. Das Folgende ist die Echtnamen-Authentifizierungsmethode für JD.com. Ich hoffe, dass sie für Internetnutzer hilfreich ist. 1. Installieren und öffnen Sie JD.com und melden Sie sich dann bei Ihrem persönlichen Konto an. 2. Klicken Sie dann unten auf der Seite auf [Mein], um die persönliche Center-Seite aufzurufen obere rechte Ecke, um zur Einstellungsfunktionsoberfläche zu gelangen. 4. Wählen Sie [Konto und Sicherheit], um zur Seite mit den Kontoeinstellungen zu gelangen. 5. Klicken Sie abschließend auf die Option [Authentifizierung mit echtem Namen], um die Informationen zum echten Namen einzugeben . Das Installationssystem erfordert die Eingabe Ihrer echten persönlichen Daten und die Durchführung der Echtnamen-Authentifizierung

Nehmen wir als Beispiel die Dashen-Apk. Durch die vorherige Analyse des Lua-Skripts zur App-Entschlüsselung können wir nun das Lua-Skript der Dashen-Apk entschlüsseln. Nehmen wir als Beispiel eine wichtigere Konfigurationsdatei vor der Entschlüsselung: Der Dateiheader hat auch einen Signaturwert: Fuckyou!. Als wir dies sahen, dachten wir zuerst darüber nach, ob es auch mit xxtea verschlüsselt wurde, und stellten dann fest, dass es während des Vorgangs immer noch verstümmelt war Ich muss unsere gerade gesagte Vermutung widerlegen. Wir entschlüsseln die Konfigurationsdatei weiterhin Schritt für Schritt. Denken Sie einen Moment darüber nach, der Dateiheader lautet: Fuckyou! Wenn Sie Dateien entschlüsseln möchten, müssen Sie diese zwangsläufig verarbeiten

Microsoft hat Anfang des Jahres SmartAppControl eingeführt, eine Sicherheitsfunktion für Windows 11. Damals beschrieb Microsoft es als ein Schutztool, das „nicht vertrauenswürdige oder potenziell gefährliche Anwendungen blockiert“. Das Besondere an dem Tool war damals, dass es festlegte, ob es auf einem Windows-11-Gerät laufen sollte. SmartAppControl läuft zunächst im Evaluierungsmodus; in diesem Modus entscheidet die Anwendung, ob sie geöffnet werden soll. Microsoft hat bekannt gegeben, dass Benutzer Smart App Control im Abschnitt „App- und Browser-Steuerelemente“ der Windows-Sicherheits-App aktivieren können. Laut Microsoft ist SmartAppC

Die Produkte und Dienstleistungen von Apple waren schon immer bei Nutzern auf der ganzen Welt beliebt. Die Registrierung einer Hongkong-Apple-ID bietet Benutzern mehr Komfort und Privilegien. Werfen wir einen Blick auf die Schritte zur Registrierung einer Hongkong-Apple-ID und worauf Sie achten müssen. So registrieren Sie eine Apple-ID für Hongkong. Wenn Sie Apple-Geräte verwenden, ist für die Anmeldung bei vielen Anwendungen und Funktionen die Verwendung einer Apple-ID erforderlich. Wenn Sie Anwendungen aus Hongkong herunterladen oder die bevorzugten Inhalte des Hong Kong AppStore genießen möchten, ist es unbedingt erforderlich, eine Hong Kong Apple ID zu registrieren. In diesem Artikel erfahren Sie, wie Sie eine Apple-ID für Hongkong registrieren und worauf Sie achten müssen. Schritte: Sprache und Region auswählen: Suchen Sie auf Ihrem Apple-Gerät die Option „Einstellungen“ und geben Sie ein

Der AppStore ist ein Marktplatz für iOS-bezogene Anwendungen. Hier finden Sie auch kostenlose Apps und kostenpflichtige Apps. Apps können Gaming-Apps, Produktivitäts-Apps, Utility-Apps, Social-Media-Apps und viele weitere Kategorien von Apps sein. Möglicherweise haben Sie viele Apps für das iPhone aus dem AppStore heruntergeladen oder gekauft. Jetzt fragen Sie sich vielleicht, wie Sie den Kaufverlauf der im App Store gekauften Apps anzeigen können. Manchmal möchten Sie aus Datenschutzgründen bestimmte Einkäufe aus Ihrer Kaufhistorie ausblenden. In diesem Artikel erfahren Sie, wie Sie Ihre Kaufhistorie finden und wie Sie bei Bedarf Einkäufe aus Ihrer Kaufhistorie löschen/ausblenden können. Teil 1

Die China Unicom-App kann problemlos alle Anforderungen erfüllen. Sie verfügt über verschiedene Funktionen, um Ihre Anforderungen zu erfüllen. Wenn Sie sie nicht benötigen, können Sie sie hier rechtzeitig abbestellen Um spätere Verluste zu vermeiden, haben viele Menschen bei der Nutzung von Mobiltelefonen manchmal das Gefühl, dass die Daten nicht ausreichen, und kaufen daher zusätzliche Datenpakete. Wenn sie diese jedoch im nächsten Monat nicht möchten, möchten sie das Abonnement sofort kündigen Der Herausgeber erklärt: Wir bieten eine Methode zum Abbestellen, damit Freunde, die sie benötigen, kommen und sie nutzen können! Suchen Sie in der China Unicom-App die Option „Mein“ in der unteren rechten Ecke und klicken Sie darauf. Schieben Sie in der Benutzeroberfläche „Mein“ die Spalte „Meine Dienste“ und klicken Sie auf die Option „Ich habe bestellt“.

Rechnungen sind als Kaufnachweis für unser tägliches Leben und Arbeiten von entscheidender Bedeutung. Wenn wir also normalerweise die Duodian-App zum Einkaufen verwenden, wie können wir dann problemlos Rechnungen in der Duodian-App ausstellen? Nachfolgend stellt Ihnen der Herausgeber dieser Website eine detaillierte Schritt-für-Schritt-Anleitung zum Öffnen von Rechnungen in Multipoint-Apps vor. Wer mehr wissen möchte, darf sich den Text nicht entgehen lassen, um mehr zu erfahren. Klicken Sie im [Rechnungscenter] auf [Multi-Point-Supermarkt/Free Shopping], wählen Sie auf der Seite „Abgeschlossene Bestellung“ die Bestellung aus, die in Rechnung gestellt werden soll, klicken Sie auf „Weiter“, um die [Rechnungsinformationen] und [Empfängerinformationen] einzugeben, und klicken Sie auf Senden Sie die E-Mail ab, nachdem Sie bestätigt haben, dass sie korrekt ist. Gehen Sie nach einigen Minuten zum Postfach des Empfängers, öffnen Sie die E-Mail, klicken Sie auf die Download-Adresse für die elektronische Rechnung und laden Sie schließlich die elektronische Rechnung herunter und drucken Sie sie aus.

Blackmagic Design hat seine vielgelobte Blackmagic Camera App endlich auf Android gebracht. Die professionelle Videokamera-App kann kostenlos heruntergeladen werden und bietet vollständige manuelle Steuerung. Diese Kontrollen sollen Ihnen die Einnahme von Cin auf Profiniveau erleichtern
