8- Input Validation Issues - Part 2

POdemos introducir cualquier URL que se nos va a cargar, no se ponen límites

La cosa es que eso también incluye file:// y javascript:
java
package jakhar.aseem.diva;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.EditText;
/* JADX INFO: loaded from: classes.dex */
public class InputValidation2URISchemeActivity extends AppCompatActivity {
@Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.support.v4.app.BaseFragmentActivityDonut, android.app.Activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_input_validation2_urischeme);
WebView wview = (WebView) findViewById(R.id.ivi2wview);
WebSettings wset = wview.getSettings();
wset.setJavaScriptEnabled(true);
}
public void get(View view) {
EditText uriText = (EditText) findViewById(R.id.ivi2uri);
WebView wview = (WebView) findViewById(R.id.ivi2wview);
wview.loadUrl(uriText.getText().toString());
}
}Además esto está en true lo que nos permite ejecutar JS directamente:
javascript
wset.setJavaScriptEnabled(true);Lo que tiene de especial es que este Javascript se ejecuta en el contexto del WebView que ya se estaba ejecutando, lo que permitiría robar cookies, local storage, hacer fetch a APIs internas etc. de la página/contexto que ya tenía el WebView
Ponemos un ejemplo:

Probamos algo básico:
javascript
javascript:document.title='TEST123'
file:// no lo vamos a poder explotar porque se trata de un android y Webview chromium modernos.