Penetration testing checklist based on OWASP Top 10 Mobile

0x01 Client Side - Static and Dynamic analysis

Test NameDescriptionToolOWASPApplicable PlatformResult
Reverse Engineering the Application CodeDisassembling and Decompiling the application, Obfuscation checkingapktool, dex2jar, Clutch, ClassdumpM10AllIssue
Hard-coded credentials on sourcecodeIdentify sensitive information on sourecodestring, jdgui, IDA, HopperM2AllIssue
Insecure version of Android OS Installation AllowedIdentify "minSdkVersion" on apktool.yml, the value be set over than 17apktool
Androidmanifest.xml
M5AndroidIssue
Cryptographic Based Storage StrengthIdentify insecure/deprecated cryptographic algorithms (RC4, MD5, SHA1) on sourcecodejdgui, YSO, Qark, AndroBugsM6AndroidIssue
Poor key management processIdentify hardcoded key in application or Keys may be intercepted via Binary attacksjdgui, YSO, Qark, AndroBugsM6AndroidIssue
Use of custom encryption protocolsIdentify implementing their own protocol jdgui, YSO, Qark, AndroBugsM6AndroidIssue
Unrestricted Backup fileCheck "android:allowBackup" attribute which should be set to "false"apktool
Androidmanifest.xml
M2AndroidIssue
Unencrypted Database filesCheck encryption on database filesadb, idb, iFunboxM2AllIssue
Insecure Shared StorageIdentify Sensitive Data on Shared Storage, SD card storage encryption, Shared preferences MODE_WORLD_READABLEadb, keychaindumperM2AllIssue
Insecure Application Data StorageIdentify Sensitive Data in application files (application log, Cache file, Cookie)adb, idb, iFunbox,BinaryCookieReaderM2AllIssue
Information Disclosure through Logcat/Apple System Log (ASL)Identify sensitive information through application logCatLog, idb, Snoop-itM4AllIssue
Application Backgrounding (Screenshot)Identify application snapshot/screenshot backgroundingadb, iFunboxM4AllIssue
URL Caching (HTTP Request and Response) on cache.dbIdentify HTTP caching which is stored in Cache.dbidb, iFunboxM4iOSIssue
Keyboard Press CachingIdentify keyboard cache file located in: /var/mobile/Library/Keyboardidb, iFunboxM4iOSIssue
Copy/Paste Buffer CachingIdentify disabling Copy/Paste function for sensitive part of the application on EditText/UITextFieldidb, iFunboxM4AllIssue
Remember Credentials Functionality (Persistent authentication)Identify user's password or sessions on the deviceidb, iFunboxM5AllIssue
Client Side Based Authentication FlawsPerform binary attacks against the mobile app in order to bypass offline authenticationadb, Drozer, Cycript, Snoop-it, BurpsuiteM5AllIssue
Client Side Authorization BreachesPerform binary attacks against the mobile app and try to execute privileged functionality that should only be executable with a user of higher privilegeadb, Drozer, Cycript, Snoop-it, BurpsuiteM5AllIssue
Insufficient WebView hardening (XSS)Identify misconfiguration on "android.webkit.WebSettings"
(Javascript/File access/Plugins), XSS through UIWebview
jdgui, BurpsuiteM7AllIssue
Content Providers: SQL Injection and Local File InclusionIdentify SQLi and LFI on Content provider componentDrozerM7AndroidIssue
Injection (SQLite Injection, XML Injection)Identify SQLi and XMLi on applicationadb, iFunbox, BurpsuiteM7AllIssue
Local File Inclusion through NSFileManager or WebviewsCheck LFI on application(../ , ../../blah\0) Webviews FileAccess attack through setAllowFileAccessiDevice, DrozerM7AllIssue
Abusing Android Components through IPC intents ("exported" and "intent-filter")Identify android exported componentsapktool
Androidmanifest.xml
M8AndroidIssue
Abusing iOS URL schemesIdentify URL schemes through info.plist and Clutch+Strings to obtain URL scheme structuresiFunbox, Clutch, StringsM8iOSIssue
Unauthorized Code ModificationBinary attack through run-time manipulation and code modificationapktool, Frida, cycript, snoop-itM10AllIssue
Debug the application behavior through runtime analysisIdentify "android:debuggable" attribute
Using GDB/LLDB attach to application
adb jdwp, jdb, GDB, LLDBM10AllIssue

0x02 Communication Channel

Test NameDescriptionToolOWASPApplicable PlatformResult
Insecure Transport Layer ProtocolsObserve the device's network traffic through a proxy that SSL is implemented or notBurpsuiteM3AllIssue
SSL/TLS Weak EncryptionIdentify SSL/TLS Encryption Algorithmstestssl.sh, Qualys SSL LabsM3AllIssue
Disable certificate validationAllow tester to intercept SSL traffic without Certificate installation (checkServerTrusted with nobody)jdgui, YSO, Qark, AndroBugsM3AllIssue
Self-signed certificateApplication accepts a certificate from any trusted CA (Burpsuite).
Check setAllowsAnyHTTPSCertificate(iOS) and AllowAllHostnameVerifier(Android)
jdgui, YSO, Qark, AndroBugsM3AllIssue
Exposing Device Specific Identifiers in Attacker Visible ElementsObserve the device's network traffic through a proxy that Device's information (UDID) is sent during the transmission or not.BurpsuiteM4AllIssue

0x03 Server Side - Webservices and API

Test NameDescriptionToolOWASPApplicable PlatformResult
Excessive port opened at FirewallIdentify opened port at Server-side URL/IP AddressNmapM1AllIssue
Default credentials on Application ServerIdentify default credentials on Backend server (e.g. Tomcat Application server using tomcat/tomcat, admin/tomcat)Web BrowserM1AllIssue
Exposure of Webservices through WSDL documentIdentify webservices help pages (*.asmx) which show methods and structureWeb BrowserM1AllIssue
Security Misconfiguration on WebserverIdentify webserver configuration (e.g. Error handling, HTTP response banner)Web Browser, BurpsuiteM1AllIssue
Input validation on APICheck input validation on API/WebservicesBurpsuiteM1AllIssue
Bypassing business logic flawsIdentify Missing Function Level Access Control, Negative value testingBurpsuiteM5AllIssue
Session invalidation on BackendEnsure that all session invalidation events are executed on the server side and not just on the mobile appBurpsuiteM9AllIssue
Session Timeout ProtectionMobile app must have adequate timeout protection on the backend componentsBurpsuiteM9AllIssue
Cookie RotationEnsure that reset cookies is properly implemented during authentication state changes
(Anonymous<->User, User A<->User B, Timeout)
BurpsuiteM9AllIssue
Token CreationThey should be standard algorithm, sufficiently long, complex, and pseudo-random so as to be resistant to guessing/anticipation attacks.BurpsuiteM9AllIssue



欢迎大家分享更好的思路,热切期待^^_^^ 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值