Skip to content

Commit 04829fc

Browse files
committed
Java: SQLInjection example for addJavaScriptInterface query
1 parent d35321f commit 04829fc

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed
Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
1-
class ExposedObject {
1+
import android.webkit.JavascriptInterface;
2+
import android.database.sqlite.SQLiteOpenHelper;
3+
4+
class ExposedObject extends SQLiteOpenHelper {
25
@JavascriptInterface
3-
public String example() {
4-
return "String from Java";
6+
public String studentEmail(String studentName) {
7+
// SQL injection
8+
String query = "SELECT email FROM students WHERE studentname = '" + studentName + "'";
9+
10+
Cursor cursor = db.rawQuery(query, null);
11+
cursor.moveToFirst();
12+
String email = cursor.getString(0);
13+
14+
return email;
515
}
616
}
717

818
webview.getSettings().setJavaScriptEnabled(true);
919
webview.addJavaScriptInterface(new ExposedObject(), "exposedObject");
1020
webview.loadData("", "text/html", null);
11-
webview.loadUrl("javascript:alert(exposedObject.example())");
21+
22+
String name = "Robert'; DROP TABLE students; --";
23+
webview.loadUrl("javascript:alert(exposedObject.studentEmail(\""+ name +"\"))");

0 commit comments

Comments
 (0)