L'app che sto tentando di attaccare (ovviamente con un programma di bug bug legittimo) ha il seguente codice per il suo ricevitore broadcast:
//From vulnerable app
public void onReceive(Context paramContext, Intent paramIntent)
{
...
paramIntent = (CommonBean)paramIntent.getSerializableExtra("msg_bean");
Dopo che l'extra serializzabile viene recuperato dall'intento, viene convertito nel tipo CommonBean, che è una classe personalizzata definita nell'app. Ho provato a ridefinire la classe CommonBean in un'altra app in attacco e creare un'istanza dell'oggetto. Viene quindi passato nell'intento prima di inviarlo al ricevitore come mostrato nel codice sottostante.
//From attacking app
CommonBean bean = new CommonBean();
intent.putExtra("msg_bean", bean);
sendBroadcast(intent);
Tuttavia, ho ricevuto un errore ClassDefNotFound poiché il classpath dell'app di attacco è diverso dall'app vulnerabile. (Ad esempio, se l'app attaccante ha il pacchetto a.b.c e l'app vulnerabile ha il pacchetto d.e.f, l'app vulnerabile genera un errore ClassDefNotFound poiché a.b.c.CommonBean non può essere trovato nell'app vulnerabile, dove invece si suppone che la classe CommonBean sia d.e.f.CommonBean). C'è un modo per passare questo oggetto personalizzato all'intento in modo che il percorso dell'oggetto segua l'app vulnerabile (d.e.f) e non l'app di attacco? (A.b.c)