I got many mails that how to find the storage related findings etc.
So writing this blog post for those who struggling finding bugs related to mobile storage OR those who don't know from where to start while hunting bug in mobile storage.
For those who are champ in mobile app sec just cheers.
So lets do this too.
1] For rooted device - Android
Requirement:-
1] Android rooted device. OR Emulator (Genymotion)
2] Install the application which you need to test for the storage related findings in rooted device/emulator and browse entire application in-order to get some juicy fruits XD
Commands:-
adb devices => It will list the devices which is attached
While running the adb devices if you get below error - device is offline
In above case make sure In your Genymotion => Settings => ADB is configured with Andriod SDK path as shown below
Post that offline message will disappear
adb shell => It will give you the root access to your cell phone
cd /data/data => Going in /data/data directory
ls => List directory contents
3] Now you need to find the file name of your application
In order to find the file name which you want simply follow below steps
3.1 - After you do ls there are many file name which is populated
PS:- use su ls command if you are getting error such as opendir failed, Permission denied
3.2 - In order to minimize your work type below command to find out the name of the file.
root@android:/data/data # ls > find.txt
[ ls > find.txt - This will create file name in the same directory]
root@android:/data/data # grep File_name_which_you_need_to_find find.txt
[ File_name_which_you_need_to_find -
If you are not able to find or locate the name of the "file" or manifest file of the application, in that case RE the source code and decompile using jd-jui in that check the application name folder.
Pro tip to find the file name in the wild XD]
After you found the file name run below command to extract the application data
root@android:/data/data #adb pull /data/data/file_name_which_you_found C:\Users\Nilesh\Desktop\
The format of the pull request is simple, you start with the command adb pull, then add the file you are pulling and the location you want it to go.
OR
1] You can download ES file explorer in your mobile from play store.
2] Install the application which you need to test for the storage related findings in rooted device/emulator and browse entire application in-order to get some juicy fruits.
3] Browse to / Devices => data => data
Kindly refer below screenshot :-
Now search the file name of your application, download that and then check for the storage.
Some problem and its solution:-
Some times while connecting your device/emulator if you face issue like
"error: more than one device" then follow below steps to connect to your emulator or device.
If you face any problem while taking shell of the device :-
Problem 1:- error: more than one device/emulator
How to solve:-
Command 1 => adb device -l
Which displays list of attached device
Command 2 => adb -s model:Google_Nexus_5___5_0_0___API_21___1080x1920 shell
2] Non rooted device- Taking backup to check storage
Requirement:-
1] Android phone - non rooted
2] Install the application which you need to test for the storage related findings, after installing browse the application thoroughly in-order to get some juicy fruits XD
3] Now check if you are able to connect your device over adb command.
3.1 - In your mobile go to Settings => About phone => Build number => Tap 7 times
3.2 - Now you can see under Settings you have a "Developer options" enabled.
3.3 - Under "Developer options" Enable "USB debugging"
3.4 - Now run the command "adb devices" to check your phone is connected or not
Steps to take the storage from non rooted android device :-
1] Type command as "adb shell" and then "ls"
2] Then type cd /data/data
You can not view this because your phone is not rooted.
3] Now we need to find the manifest file of the application which we are testing. Which will look like as follow :-
com.example.app => This will be your application manifest file name which you want.
In order to find this name you need to install Manifest Viewer from the play-store.
After that open the Manifest viewer and find that application you will able to see the manifest file name.
4] Run the below command:-
adb backup -f backup.ab -noapk com.example.app
after that you will get the message as "Now unlock your device and confirm the backup operation."
Set the password as required by you and click on "Back up my data"
PS:- In your given path backup.ab file will be created.
Our path was C:\Users\Nilesh\Desktop
5]
Download android-backup-extractor from this link
and then place your backup.ab file in the extracted folder
Now run the following command:-
abe.jar unpack backup.ab <outputfile.tar>
which will be
abe.jar unpack backup.ab anyfilename.tar
After that extract the tar file and check if you can find any storage related bugs.