Skip to content

8- Input Validation Issues - Part 2

Pasted image 20260826174241

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

Pasted image 20260826174529

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:

Pasted image 20260826182019

Probamos algo básico:

javascript
javascript:document.title='TEST123'
Pasted image 20260826182723

file:// no lo vamos a poder explotar porque se trata de un android y Webview chromium modernos.

Notas personales de seguridad ofensiva.