<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SaravanaKumar</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SaravanaKumar"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/SaravanaKumar"/>
		<updated>2026-05-29T22:54:37Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211625</id>
		<title>Android Testing Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211625"/>
				<updated>2016-03-23T11:26:36Z</updated>
		
		<summary type="html">&lt;p&gt;SaravanaKumar: /* M5 - Poor Authorization and Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Cheatsheets-header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' &lt;br /&gt;
= Introduction  =&lt;br /&gt;
&amp;lt;b&amp;gt;DRAFT MODE - This Cheat Sheet is a Work in Progress&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cheat sheet provides a checklist of tasks to be performed to do a penetration test of an Android application. It follows the [https://www.owasp.org/index.php/OWASP_Mobile_Security_Project OWASP Mobile Top 10 Risks] list.&lt;br /&gt;
&lt;br /&gt;
== Testing Methodology ==&lt;br /&gt;
&lt;br /&gt;
At the device level, there are 2 ways in which the application shall be tested. &lt;br /&gt;
# With Android device running in a factory default or normal mode&lt;br /&gt;
# With Android device running in a rooted mode&lt;br /&gt;
&lt;br /&gt;
At the application level, there are 2 ways in which it shall be tested&lt;br /&gt;
# Application running on the device (to take benefits of touch related features)&lt;br /&gt;
# Application running on the emulator (to ease the task of testing using wider screen of desktop or laptop)&lt;br /&gt;
&lt;br /&gt;
== Application Mapping ==&lt;br /&gt;
&lt;br /&gt;
Map the application for possible security vectors&lt;br /&gt;
# What is the application genre ? (Game, business, productivity etc)&lt;br /&gt;
# Does the application connect to backend web services?&lt;br /&gt;
# Is the application purely native or incorporates readymade frameworks?&lt;br /&gt;
# Does the application store data on the device?&lt;br /&gt;
# What all features of the device are used by the application? (camera, gyroscope, contacts etc)&lt;br /&gt;
   &lt;br /&gt;
= OWASP Step-by-step Approach =&lt;br /&gt;
(For each of the standards below, there shall be multiple steps for the tester to follow])&lt;br /&gt;
== M1 - Weaker Server side controls ==&lt;br /&gt;
== M2 - Insecure Data storage ==&lt;br /&gt;
&lt;br /&gt;
This Section should be ideally tested after using the application for some time. This way application has time to store some data on the disk.&lt;br /&gt;
&lt;br /&gt;
Commonplaces to look at &lt;br /&gt;
&lt;br /&gt;
* /data/data/app_folder&lt;br /&gt;
* /sdcard/&lt;br /&gt;
* /sdcard1/&lt;br /&gt;
&lt;br /&gt;
== M3 - Insufficient Transport Layer ==&lt;br /&gt;
&lt;br /&gt;
Multiple layer of checks to be performed here&lt;br /&gt;
&lt;br /&gt;
1. On Server side&lt;br /&gt;
* Identify all ssl endpoints.&lt;br /&gt;
* Perform SSL Cipher Scan using (sslscan)[https://github.com/rbsec/sslscan] or similar software. &lt;br /&gt;
* SSLv2, SSLv3 is disabled&lt;br /&gt;
* TLS 1.2, 1.1 and 1.0 is supported (1.2 is essential to ensure highest possible secure connection)&lt;br /&gt;
* RC4 and CBC Based Ciphers are disabled&lt;br /&gt;
* DH Params are &amp;gt;2048 Bits&lt;br /&gt;
* SSL Certificate is signed with atleast sha2 / sha256&lt;br /&gt;
* ECDHE Ciphers / Ciphers supporting Perfect forward secrecy are preferred&lt;br /&gt;
* SSL Certificate is from Trusted RootCA&lt;br /&gt;
* SSL Certificate is not expired&lt;br /&gt;
&lt;br /&gt;
2. On Device Side&lt;br /&gt;
* Ensure application is working correctly by navigating around.&lt;br /&gt;
* Put a proxy in between the application and remote server. If application fails to load. Application might be doing cert validation. Refer logcat if any message is printed.&lt;br /&gt;
* Place Proxy RootCA in trusted root CA list in device. (Burp)[https://support.portswigger.net/customer/portal/articles/1841101-configuring-an-android-device-to-work-with-burp] (OWASP-ZAP)[https://security.secure.force.com/security/tools/webapp/zapandroidsetup]&lt;br /&gt;
* Try using application again. If application still doesn't connect, application might be doing cert pinning.&lt;br /&gt;
* Install (Xposed Framework)[http://repo.xposed.info/module/de.robv.android.xposed.installer] and (Just Trust Me)[https://github.com/Fuzion24/JustTrustMe], enable JustTrustMe and then reboot device. &lt;br /&gt;
* Try again if everything works we have a application which employee's cert pinning.&lt;br /&gt;
&lt;br /&gt;
== M4 - Unintended Data Leakage ==&lt;br /&gt;
&lt;br /&gt;
Simmilar to M2 this section requires application to be used however while the application is in use we need to monitor following places.&lt;br /&gt;
&lt;br /&gt;
* adb logcat output&lt;br /&gt;
* cache and webcache folder locations&lt;br /&gt;
&lt;br /&gt;
== M5 - Poor Authorization and Authentication ==&lt;br /&gt;
&lt;br /&gt;
One of the simplest check's to be performed after application is used for some time and it has time to put the data inside system.&lt;br /&gt;
&lt;br /&gt;
* enumerate all exported activities&lt;br /&gt;
* start each activity and identify if the activity was suppose to be publicly accessible or not.&lt;br /&gt;
* Any activity displaying confidential information should be behind authentication. (confidential information includes PII (Personally identifiable data), financial data etc)&lt;br /&gt;
&lt;br /&gt;
===Improper Session Handling===&lt;br /&gt;
Improper Session Handling typically results in the same outcomes as poor authentication. Once you are authenticated and given a session, that session allows one access to the mobile application.&lt;br /&gt;
There are multiple things to look at&lt;br /&gt;
* Check and validate Sessions on the Backend&lt;br /&gt;
* Check for session Timeout Protection&lt;br /&gt;
* Check for improper Cookies configuration&lt;br /&gt;
* Insecure Token Creation&lt;br /&gt;
&lt;br /&gt;
== M6 - Broken Cryptography ==&lt;br /&gt;
&lt;br /&gt;
There are multiple things to look at &lt;br /&gt;
&lt;br /&gt;
* Usage of known weak crypto algo's like Rot13, MD4, MD5, RC2, RC4, SHA1&lt;br /&gt;
* Do it Yourself / let me design my own algo for encryption&lt;br /&gt;
* Secret key hard coded in the application code itself.&lt;br /&gt;
&lt;br /&gt;
== M7 - Client Side Injection ==&lt;br /&gt;
&lt;br /&gt;
Android applications need to store data locally in sqlite files or XML structures and hence need to performs either SQL/XML Queries or file I/O. &lt;br /&gt;
&lt;br /&gt;
This gives rise to 2 major issues.&lt;br /&gt;
&lt;br /&gt;
# SQL / XML injection, and if the reading intent is publicly exposed another application could read this.&lt;br /&gt;
# Local file read which can allow other application to read files of the application in question and if they contain sensitive data then data leakage via this media. &lt;br /&gt;
&lt;br /&gt;
If the application is a HTML5 hybrid application then Cross Site Scripting (XSS) should also be considered.&lt;br /&gt;
XSS will expose the entire application to the attacker as HTML5 applications will have the ability to call native functionality and hence control over the entire application.&lt;br /&gt;
&lt;br /&gt;
== M8 - Security Decisions via untrusted inputs ==&lt;br /&gt;
&lt;br /&gt;
== M10 - Lack of Binary Protection ==&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors =&lt;br /&gt;
&lt;br /&gt;
Jim Manico&lt;br /&gt;
&lt;br /&gt;
Jonathan Carter&lt;br /&gt;
&lt;br /&gt;
Prashant Phatak&lt;br /&gt;
&lt;br /&gt;
Milan Singh Thakur&lt;br /&gt;
&lt;br /&gt;
Anant Shrivastava&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation_Body}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>SaravanaKumar</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211622</id>
		<title>Android Testing Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211622"/>
				<updated>2016-03-23T10:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;SaravanaKumar: /* M8 - Security Decisions via untrusted inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Cheatsheets-header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' &lt;br /&gt;
= Introduction  =&lt;br /&gt;
&amp;lt;b&amp;gt;DRAFT MODE - This Cheat Sheet is a Work in Progress&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cheat sheet provides a checklist of tasks to be performed to do a penetration test of an Android application. It follows the [https://www.owasp.org/index.php/OWASP_Mobile_Security_Project OWASP Mobile Top 10 Risks] list.&lt;br /&gt;
&lt;br /&gt;
== Testing Methodology ==&lt;br /&gt;
&lt;br /&gt;
At the device level, there are 2 ways in which the application shall be tested. &lt;br /&gt;
# With Android device running in a factory default or normal mode&lt;br /&gt;
# With Android device running in a rooted mode&lt;br /&gt;
&lt;br /&gt;
At the application level, there are 2 ways in which it shall be tested&lt;br /&gt;
# Application running on the device (to take benefits of touch related features)&lt;br /&gt;
# Application running on the emulator (to ease the task of testing using wider screen of desktop or laptop)&lt;br /&gt;
&lt;br /&gt;
== Application Mapping ==&lt;br /&gt;
&lt;br /&gt;
Map the application for possible security vectors&lt;br /&gt;
# What is the application genre ? (Game, business, productivity etc)&lt;br /&gt;
# Does the application connect to backend web services?&lt;br /&gt;
# Is the application purely native or incorporates readymade frameworks?&lt;br /&gt;
# Does the application store data on the device?&lt;br /&gt;
# What all features of the device are used by the application? (camera, gyroscope, contacts etc)&lt;br /&gt;
   &lt;br /&gt;
= OWASP Step-by-step Approach =&lt;br /&gt;
(For each of the standards below, there shall be multiple steps for the tester to follow])&lt;br /&gt;
== M1 - Weaker Server side controls ==&lt;br /&gt;
== M2 - Insecure Data storage ==&lt;br /&gt;
&lt;br /&gt;
This Section should be ideally tested after using the application for some time. This way application has time to store some data on the disk.&lt;br /&gt;
&lt;br /&gt;
Commonplaces to look at &lt;br /&gt;
&lt;br /&gt;
* /data/data/app_folder&lt;br /&gt;
* /sdcard/&lt;br /&gt;
* /sdcard1/&lt;br /&gt;
&lt;br /&gt;
== M3 - Insufficient Transport Layer ==&lt;br /&gt;
&lt;br /&gt;
Multiple layer of checks to be performed here&lt;br /&gt;
&lt;br /&gt;
1. On Server side&lt;br /&gt;
* Identify all ssl endpoints.&lt;br /&gt;
* Perform SSL Cipher Scan using (sslscan)[https://github.com/rbsec/sslscan] or similar software. &lt;br /&gt;
* SSLv2, SSLv3 is disabled&lt;br /&gt;
* TLS 1.2, 1.1 and 1.0 is supported (1.2 is essential to ensure highest possible secure connection)&lt;br /&gt;
* RC4 and CBC Based Ciphers are disabled&lt;br /&gt;
* DH Params are &amp;gt;2048 Bits&lt;br /&gt;
* SSL Certificate is signed with atleast sha2 / sha256&lt;br /&gt;
* ECDHE Ciphers / Ciphers supporting Perfect forward secrecy are preferred&lt;br /&gt;
* SSL Certificate is from Trusted RootCA&lt;br /&gt;
* SSL Certificate is not expired&lt;br /&gt;
&lt;br /&gt;
2. On Device Side&lt;br /&gt;
* Ensure application is working correctly by navigating around.&lt;br /&gt;
* Put a proxy in between the application and remote server. If application fails to load. Application might be doing cert validation. Refer logcat if any message is printed.&lt;br /&gt;
* Place Proxy RootCA in trusted root CA list in device. (Burp)[https://support.portswigger.net/customer/portal/articles/1841101-configuring-an-android-device-to-work-with-burp] (OWASP-ZAP)[https://security.secure.force.com/security/tools/webapp/zapandroidsetup]&lt;br /&gt;
* Try using application again. If application still doesn't connect, application might be doing cert pinning.&lt;br /&gt;
* Install (Xposed Framework)[http://repo.xposed.info/module/de.robv.android.xposed.installer] and (Just Trust Me)[https://github.com/Fuzion24/JustTrustMe], enable JustTrustMe and then reboot device. &lt;br /&gt;
* Try again if everything works we have a application which employee's cert pinning.&lt;br /&gt;
&lt;br /&gt;
== M4 - Unintended Data Leakage ==&lt;br /&gt;
&lt;br /&gt;
Simmilar to M2 this section requires application to be used however while the application is in use we need to monitor following places.&lt;br /&gt;
&lt;br /&gt;
* adb logcat output&lt;br /&gt;
* cache and webcache folder locations&lt;br /&gt;
&lt;br /&gt;
== M5 - Poor Authorization and Authentication ==&lt;br /&gt;
&lt;br /&gt;
One of the simplest check's to be performed after application is used for some time and it has time to put the data inside system.&lt;br /&gt;
&lt;br /&gt;
* enumerate all exported activities&lt;br /&gt;
* start each activity and identify if the activity was suppose to be publicly accessible or not.&lt;br /&gt;
* Any activity displaying confidential information should be behind authentication. (confidential information includes PII (Personally identifiable data), financial data etc)&lt;br /&gt;
&lt;br /&gt;
== M6 - Broken Cryptography ==&lt;br /&gt;
&lt;br /&gt;
There are multiple things to look at &lt;br /&gt;
&lt;br /&gt;
* Usage of known weak crypto algo's like Rot13, MD4, MD5, RC2, RC4, SHA1&lt;br /&gt;
* Do it Yourself / let me design my own algo for encryption&lt;br /&gt;
* Secret key hard coded in the application code itself.&lt;br /&gt;
&lt;br /&gt;
== M7 - Client Side Injection ==&lt;br /&gt;
&lt;br /&gt;
Android applications need to store data locally in sqlite files or XML structures and hence need to performs either SQL/XML Queries or file I/O. &lt;br /&gt;
&lt;br /&gt;
This gives rise to 2 major issues.&lt;br /&gt;
&lt;br /&gt;
# SQL / XML injection, and if the reading intent is publicly exposed another application could read this.&lt;br /&gt;
# Local file read which can allow other application to read files of the application in question and if they contain sensitive data then data leakage via this media. &lt;br /&gt;
&lt;br /&gt;
If the application is a HTML5 hybrid application then Cross Site Scripting (XSS) should also be considered.&lt;br /&gt;
XSS will expose the entire application to the attacker as HTML5 applications will have the ability to call native functionality and hence control over the entire application.&lt;br /&gt;
&lt;br /&gt;
== M8 - Security Decisions via untrusted inputs ==&lt;br /&gt;
&lt;br /&gt;
== M10 - Lack of Binary Protection ==&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors =&lt;br /&gt;
&lt;br /&gt;
Jim Manico&lt;br /&gt;
&lt;br /&gt;
Jonathan Carter&lt;br /&gt;
&lt;br /&gt;
Prashant Phatak&lt;br /&gt;
&lt;br /&gt;
Milan Singh Thakur&lt;br /&gt;
&lt;br /&gt;
Anant Shrivastava&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation_Body}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>SaravanaKumar</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211617</id>
		<title>Android Testing Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211617"/>
				<updated>2016-03-23T10:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;SaravanaKumar: /* M9 - Improper Session Handling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Cheatsheets-header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' &lt;br /&gt;
= Introduction  =&lt;br /&gt;
&amp;lt;b&amp;gt;DRAFT MODE - This Cheat Sheet is a Work in Progress&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cheat sheet provides a checklist of tasks to be performed to do a penetration test of an Android application. It follows the [https://www.owasp.org/index.php/OWASP_Mobile_Security_Project OWASP Mobile Top 10 Risks] list.&lt;br /&gt;
&lt;br /&gt;
== Testing Methodology ==&lt;br /&gt;
&lt;br /&gt;
At the device level, there are 2 ways in which the application shall be tested. &lt;br /&gt;
# With Android device running in a factory default or normal mode&lt;br /&gt;
# With Android device running in a rooted mode&lt;br /&gt;
&lt;br /&gt;
At the application level, there are 2 ways in which it shall be tested&lt;br /&gt;
# Application running on the device (to take benefits of touch related features)&lt;br /&gt;
# Application running on the emulator (to ease the task of testing using wider screen of desktop or laptop)&lt;br /&gt;
&lt;br /&gt;
== Application Mapping ==&lt;br /&gt;
&lt;br /&gt;
Map the application for possible security vectors&lt;br /&gt;
# What is the application genre ? (Game, business, productivity etc)&lt;br /&gt;
# Does the application connect to backend web services?&lt;br /&gt;
# Is the application purely native or incorporates readymade frameworks?&lt;br /&gt;
# Does the application store data on the device?&lt;br /&gt;
# What all features of the device are used by the application? (camera, gyroscope, contacts etc)&lt;br /&gt;
   &lt;br /&gt;
= OWASP Step-by-step Approach =&lt;br /&gt;
(For each of the standards below, there shall be multiple steps for the tester to follow])&lt;br /&gt;
== M1 - Weaker Server side controls ==&lt;br /&gt;
== M2 - Insecure Data storage ==&lt;br /&gt;
&lt;br /&gt;
This Section should be ideally tested after using the application for some time. This way application has time to store some data on the disk.&lt;br /&gt;
&lt;br /&gt;
Commonplaces to look at &lt;br /&gt;
&lt;br /&gt;
* /data/data/app_folder&lt;br /&gt;
* /sdcard/&lt;br /&gt;
* /sdcard1/&lt;br /&gt;
&lt;br /&gt;
== M3 - Insufficient Transport Layer ==&lt;br /&gt;
&lt;br /&gt;
Multiple layer of checks to be performed here&lt;br /&gt;
&lt;br /&gt;
1. On Server side&lt;br /&gt;
* Identify all ssl endpoints.&lt;br /&gt;
* Perform SSL Cipher Scan using (sslscan)[https://github.com/rbsec/sslscan] or similar software. &lt;br /&gt;
* SSLv2, SSLv3 is disabled&lt;br /&gt;
* TLS 1.2, 1.1 and 1.0 is supported (1.2 is essential to ensure highest possible secure connection)&lt;br /&gt;
* RC4 and CBC Based Ciphers are disabled&lt;br /&gt;
* DH Params are &amp;gt;2048 Bits&lt;br /&gt;
* SSL Certificate is signed with atleast sha2 / sha256&lt;br /&gt;
* ECDHE Ciphers / Ciphers supporting Perfect forward secrecy are preferred&lt;br /&gt;
* SSL Certificate is from Trusted RootCA&lt;br /&gt;
* SSL Certificate is not expired&lt;br /&gt;
&lt;br /&gt;
2. On Device Side&lt;br /&gt;
* Ensure application is working correctly by navigating around.&lt;br /&gt;
* Put a proxy in between the application and remote server. If application fails to load. Application might be doing cert validation. Refer logcat if any message is printed.&lt;br /&gt;
* Place Proxy RootCA in trusted root CA list in device. (Burp)[https://support.portswigger.net/customer/portal/articles/1841101-configuring-an-android-device-to-work-with-burp] (OWASP-ZAP)[https://security.secure.force.com/security/tools/webapp/zapandroidsetup]&lt;br /&gt;
* Try using application again. If application still doesn't connect, application might be doing cert pinning.&lt;br /&gt;
* Install (Xposed Framework)[http://repo.xposed.info/module/de.robv.android.xposed.installer] and (Just Trust Me)[https://github.com/Fuzion24/JustTrustMe], enable JustTrustMe and then reboot device. &lt;br /&gt;
* Try again if everything works we have a application which employee's cert pinning.&lt;br /&gt;
&lt;br /&gt;
== M4 - Unintended Data Leakage ==&lt;br /&gt;
&lt;br /&gt;
Simmilar to M2 this section requires application to be used however while the application is in use we need to monitor following places.&lt;br /&gt;
&lt;br /&gt;
* adb logcat output&lt;br /&gt;
* cache and webcache folder locations&lt;br /&gt;
&lt;br /&gt;
== M5 - Poor Authorization and Authentication ==&lt;br /&gt;
&lt;br /&gt;
One of the simplest check's to be performed after application is used for some time and it has time to put the data inside system.&lt;br /&gt;
&lt;br /&gt;
* enumerate all exported activities&lt;br /&gt;
* start each activity and identify if the activity was suppose to be publicly accessible or not.&lt;br /&gt;
* Any activity displaying confidential information should be behind authentication. (confidential information includes PII (Personally identifiable data), financial data etc)&lt;br /&gt;
&lt;br /&gt;
== M6 - Broken Cryptography ==&lt;br /&gt;
&lt;br /&gt;
There are multiple things to look at &lt;br /&gt;
&lt;br /&gt;
* Usage of known weak crypto algo's like Rot13, MD4, MD5, RC2, RC4, SHA1&lt;br /&gt;
* Do it Yourself / let me design my own algo for encryption&lt;br /&gt;
* Secret key hard coded in the application code itself.&lt;br /&gt;
&lt;br /&gt;
== M7 - Client Side Injection ==&lt;br /&gt;
&lt;br /&gt;
Android applications need to store data locally in sqlite files or XML structures and hence need to performs either SQL/XML Queries or file I/O. &lt;br /&gt;
&lt;br /&gt;
This gives rise to 2 major issues.&lt;br /&gt;
&lt;br /&gt;
# SQL / XML injection, and if the reading intent is publicly exposed another application could read this.&lt;br /&gt;
# Local file read which can allow other application to read files of the application in question and if they contain sensitive data then data leakage via this media. &lt;br /&gt;
&lt;br /&gt;
If the application is a HTML5 hybrid application then Cross Site Scripting (XSS) should also be considered.&lt;br /&gt;
XSS will expose the entire application to the attacker as HTML5 applications will have the ability to call native functionality and hence control over the entire application.&lt;br /&gt;
&lt;br /&gt;
== M8 - Security Decisions via untrusted inputs ==&lt;br /&gt;
--== M9 - Improper Session Handling ==&lt;br /&gt;
Improper Session Handling typically results in the same outcomes as poor authentication. Once you are authenticated and given a session, that session allows one access to the mobile application.&lt;br /&gt;
There are multiple things to look at&lt;br /&gt;
* Check and validate Sessions on the Backend&lt;br /&gt;
* Check for session Timeout Protection&lt;br /&gt;
* Check for improper Cookies configuration&lt;br /&gt;
* Insecure Token Creation&lt;br /&gt;
--[[User:SaravanaKumar|SaravanaKumar]] ([[User talk:SaravanaKumar|talk]]) 05:14, 23 March 2016 (CDT)&lt;br /&gt;
&lt;br /&gt;
== M10 - Lack of Binary Protection ==&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors =&lt;br /&gt;
&lt;br /&gt;
Jim Manico&lt;br /&gt;
&lt;br /&gt;
Jonathan Carter&lt;br /&gt;
&lt;br /&gt;
Prashant Phatak&lt;br /&gt;
&lt;br /&gt;
Milan Singh Thakur&lt;br /&gt;
&lt;br /&gt;
Anant Shrivastava&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation_Body}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>SaravanaKumar</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211616</id>
		<title>Android Testing Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Android_Testing_Cheat_Sheet&amp;diff=211616"/>
				<updated>2016-03-23T10:13:26Z</updated>
		
		<summary type="html">&lt;p&gt;SaravanaKumar: /* M9 - Improper Session Handling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Cheatsheets-header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' &lt;br /&gt;
= Introduction  =&lt;br /&gt;
&amp;lt;b&amp;gt;DRAFT MODE - This Cheat Sheet is a Work in Progress&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cheat sheet provides a checklist of tasks to be performed to do a penetration test of an Android application. It follows the [https://www.owasp.org/index.php/OWASP_Mobile_Security_Project OWASP Mobile Top 10 Risks] list.&lt;br /&gt;
&lt;br /&gt;
== Testing Methodology ==&lt;br /&gt;
&lt;br /&gt;
At the device level, there are 2 ways in which the application shall be tested. &lt;br /&gt;
# With Android device running in a factory default or normal mode&lt;br /&gt;
# With Android device running in a rooted mode&lt;br /&gt;
&lt;br /&gt;
At the application level, there are 2 ways in which it shall be tested&lt;br /&gt;
# Application running on the device (to take benefits of touch related features)&lt;br /&gt;
# Application running on the emulator (to ease the task of testing using wider screen of desktop or laptop)&lt;br /&gt;
&lt;br /&gt;
== Application Mapping ==&lt;br /&gt;
&lt;br /&gt;
Map the application for possible security vectors&lt;br /&gt;
# What is the application genre ? (Game, business, productivity etc)&lt;br /&gt;
# Does the application connect to backend web services?&lt;br /&gt;
# Is the application purely native or incorporates readymade frameworks?&lt;br /&gt;
# Does the application store data on the device?&lt;br /&gt;
# What all features of the device are used by the application? (camera, gyroscope, contacts etc)&lt;br /&gt;
   &lt;br /&gt;
= OWASP Step-by-step Approach =&lt;br /&gt;
(For each of the standards below, there shall be multiple steps for the tester to follow])&lt;br /&gt;
== M1 - Weaker Server side controls ==&lt;br /&gt;
== M2 - Insecure Data storage ==&lt;br /&gt;
&lt;br /&gt;
This Section should be ideally tested after using the application for some time. This way application has time to store some data on the disk.&lt;br /&gt;
&lt;br /&gt;
Commonplaces to look at &lt;br /&gt;
&lt;br /&gt;
* /data/data/app_folder&lt;br /&gt;
* /sdcard/&lt;br /&gt;
* /sdcard1/&lt;br /&gt;
&lt;br /&gt;
== M3 - Insufficient Transport Layer ==&lt;br /&gt;
&lt;br /&gt;
Multiple layer of checks to be performed here&lt;br /&gt;
&lt;br /&gt;
1. On Server side&lt;br /&gt;
* Identify all ssl endpoints.&lt;br /&gt;
* Perform SSL Cipher Scan using (sslscan)[https://github.com/rbsec/sslscan] or similar software. &lt;br /&gt;
* SSLv2, SSLv3 is disabled&lt;br /&gt;
* TLS 1.2, 1.1 and 1.0 is supported (1.2 is essential to ensure highest possible secure connection)&lt;br /&gt;
* RC4 and CBC Based Ciphers are disabled&lt;br /&gt;
* DH Params are &amp;gt;2048 Bits&lt;br /&gt;
* SSL Certificate is signed with atleast sha2 / sha256&lt;br /&gt;
* ECDHE Ciphers / Ciphers supporting Perfect forward secrecy are preferred&lt;br /&gt;
* SSL Certificate is from Trusted RootCA&lt;br /&gt;
* SSL Certificate is not expired&lt;br /&gt;
&lt;br /&gt;
2. On Device Side&lt;br /&gt;
* Ensure application is working correctly by navigating around.&lt;br /&gt;
* Put a proxy in between the application and remote server. If application fails to load. Application might be doing cert validation. Refer logcat if any message is printed.&lt;br /&gt;
* Place Proxy RootCA in trusted root CA list in device. (Burp)[https://support.portswigger.net/customer/portal/articles/1841101-configuring-an-android-device-to-work-with-burp] (OWASP-ZAP)[https://security.secure.force.com/security/tools/webapp/zapandroidsetup]&lt;br /&gt;
* Try using application again. If application still doesn't connect, application might be doing cert pinning.&lt;br /&gt;
* Install (Xposed Framework)[http://repo.xposed.info/module/de.robv.android.xposed.installer] and (Just Trust Me)[https://github.com/Fuzion24/JustTrustMe], enable JustTrustMe and then reboot device. &lt;br /&gt;
* Try again if everything works we have a application which employee's cert pinning.&lt;br /&gt;
&lt;br /&gt;
== M4 - Unintended Data Leakage ==&lt;br /&gt;
&lt;br /&gt;
Simmilar to M2 this section requires application to be used however while the application is in use we need to monitor following places.&lt;br /&gt;
&lt;br /&gt;
* adb logcat output&lt;br /&gt;
* cache and webcache folder locations&lt;br /&gt;
&lt;br /&gt;
== M5 - Poor Authorization and Authentication ==&lt;br /&gt;
&lt;br /&gt;
One of the simplest check's to be performed after application is used for some time and it has time to put the data inside system.&lt;br /&gt;
&lt;br /&gt;
* enumerate all exported activities&lt;br /&gt;
* start each activity and identify if the activity was suppose to be publicly accessible or not.&lt;br /&gt;
* Any activity displaying confidential information should be behind authentication. (confidential information includes PII (Personally identifiable data), financial data etc)&lt;br /&gt;
&lt;br /&gt;
== M6 - Broken Cryptography ==&lt;br /&gt;
&lt;br /&gt;
There are multiple things to look at &lt;br /&gt;
&lt;br /&gt;
* Usage of known weak crypto algo's like Rot13, MD4, MD5, RC2, RC4, SHA1&lt;br /&gt;
* Do it Yourself / let me design my own algo for encryption&lt;br /&gt;
* Secret key hard coded in the application code itself.&lt;br /&gt;
&lt;br /&gt;
== M7 - Client Side Injection ==&lt;br /&gt;
&lt;br /&gt;
Android applications need to store data locally in sqlite files or XML structures and hence need to performs either SQL/XML Queries or file I/O. &lt;br /&gt;
&lt;br /&gt;
This gives rise to 2 major issues.&lt;br /&gt;
&lt;br /&gt;
# SQL / XML injection, and if the reading intent is publicly exposed another application could read this.&lt;br /&gt;
# Local file read which can allow other application to read files of the application in question and if they contain sensitive data then data leakage via this media. &lt;br /&gt;
&lt;br /&gt;
If the application is a HTML5 hybrid application then Cross Site Scripting (XSS) should also be considered.&lt;br /&gt;
XSS will expose the entire application to the attacker as HTML5 applications will have the ability to call native functionality and hence control over the entire application.&lt;br /&gt;
&lt;br /&gt;
== M8 - Security Decisions via untrusted inputs ==&lt;br /&gt;
== M9 - Improper Session Handling ==&lt;br /&gt;
Improper Session Handling typically results in the same outcomes as poor authentication. Once you are authenticated and given a session, that session allows one access to the mobile application.&lt;br /&gt;
There are multiple things to look at&lt;br /&gt;
* Check and validate Sessions on the Backend&lt;br /&gt;
* Check for session Timeout Protection&lt;br /&gt;
* Check for improper Cookies configuration&lt;br /&gt;
* Insecure Token Creation&lt;br /&gt;
&lt;br /&gt;
== M10 - Lack of Binary Protection ==&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors =&lt;br /&gt;
&lt;br /&gt;
Jim Manico&lt;br /&gt;
&lt;br /&gt;
Jonathan Carter&lt;br /&gt;
&lt;br /&gt;
Prashant Phatak&lt;br /&gt;
&lt;br /&gt;
Milan Singh Thakur&lt;br /&gt;
&lt;br /&gt;
Anant Shrivastava&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation_Body}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>SaravanaKumar</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:SaravanaKumar&amp;diff=211611</id>
		<title>User:SaravanaKumar</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:SaravanaKumar&amp;diff=211611"/>
				<updated>2016-03-23T06:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;SaravanaKumar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Saravana is information security guy who is working as security engineer.&lt;br /&gt;
Throughout career he has worked with major corporations on secure architecture and software security. He’s also performed multiple of technical security assessments for financial, enterprise, E-commerce and few customers worldwide. &lt;br /&gt;
&lt;br /&gt;
Saravana holds a Master of Science degree in Software Systems.He have completed globalized information security certifications like Offensive Security Certified Professional (OSCP) , Certified Ethical Hacker(CEH v8) and IT management certification ITIL Foundation.&lt;/div&gt;</summary>
		<author><name>SaravanaKumar</name></author>	</entry>

	</feed>