hacktricks/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md

46 lines
2.4 KiB
Markdown
Raw Normal View History

2023-06-06 18:56:34 +00:00
# Manipuladores de Protocolo WebView
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Os manipuladores de protocolo WebView permitem que aplicativos iOS abram URLs personalizadas em um navegador interno. Isso pode ser usado para permitir que aplicativos acessem conteúdo da web sem sair do aplicativo. No entanto, se um manipulador de protocolo WebView for mal implementado, ele pode ser explorado por um atacante para executar ataques de phishing ou redirecionar o usuário para sites maliciosos.
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
## Verificando manipuladores de protocolo WebView
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Para verificar se um aplicativo iOS possui manipuladores de protocolo WebView, você pode usar o seguinte comando:
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
```bash
$ frida -U -f com.example.app --no-pause -l frida-ios-hooks.js
```
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
```javascript
Interceptor.attach(ObjC.classes.UIApplication["- openURL:"].implementation, {
onEnter: function(args) {
console.log("[*] openURL: " + ObjC.Object(args[2]).toString());
}
});
```
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Este comando usa o Frida para interceptar a chamada `openURL` do aplicativo e imprimir a URL que está sendo aberta. Se a URL começar com `http://` ou `https://`, ela será aberta em um navegador externo. No entanto, se a URL começar com um manipulador de protocolo WebView personalizado, ela será aberta em um navegador interno.
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
## Explorando manipuladores de protocolo WebView
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Se um aplicativo iOS tiver um manipulador de protocolo WebView mal implementado, ele poderá ser explorado por um atacante para executar ataques de phishing ou redirecionar o usuário para sites maliciosos. Por exemplo, um atacante pode criar um site malicioso que use um manipulador de protocolo WebView personalizado para redirecionar o usuário para um site de phishing.
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Para explorar um manipulador de protocolo WebView, você pode usar o seguinte comando:
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
```bash
$ frida -U -f com.example.app --no-pause -l frida-ios-hooks.js
```
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
```javascript
Interceptor.attach(ObjC.classes.UIApplication["- openURL:"].implementation, {
onEnter: function(args) {
var url = ObjC.Object(args[2]).toString();
if (url.startsWith("myapp://")) {
console.log("[*] Intercepted URL: " + url);
// Do something malicious here
}
}
});
```
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Este comando usa o Frida para interceptar a chamada `openURL` do aplicativo e verificar se a URL começa com um manipulador de protocolo WebView personalizado. Se a URL for maliciosa, o atacante pode executar um código malicioso para roubar informações do usuário ou redirecioná-lo para um site de phishing.