SlideShare a Scribd company logo
1 of 56
Download to read offline
Ch 6: Mobile Services and 

Mobile Web

Part 1
CNIT 128:
Hacking Mobile
Devices
Updated 2-22-17
Ch 6 Part 1
Through OAuth
Part 2 starts with SAML
Server-Side Technologies
• SQL (Structured Query Language)
– Servers that manage databases
– Contain SSNs, credit card numbers,
sometimes passwords, etc.
Server-Side Technologies
• SOAP (Simple Object Access Protocol)
– XML-based middleware to exchange data
between servers and clients
– Can operate over any transport protocol such
as HTTP, SMTP, TCP, UDP, or JMS (link Ch 6a)
– Examples on next slides from link Ch 6l
JSON v. XML
• From link Ch 6n
JSON XML
Server-Side Technologies
• ReST (Representational State Transfer)
– Uses HTTP to transfer data between machines
– The World Wide Web can be viewed as a REST-
based architecture (link Ch 6c)
– Send data with PUT, get it with GET (link Ch 6n)
Server-Side Technologies
• JSON (JavaScript
Object Notation)
– Lightweight
data-interchange
format
– An alternative to
XML (link Ch 6b)
– Example from
link Ch 6m
Server-Side Vulnerabilities
• Expose far more data than client-side
vulnerabilities
• Larger attack surface than client
– Server runs services, some for clients, others
for business logic, internal interfaces,
databases, partner interfaces, etc.
General Web Service Security
Guidelines:
OWASP Top Ten Mobile Risks
2016
Link Ch 6k
Attacks Against XML-Based
Web Services
Security Audit of XML-Based Web
Service
• Identify web service endpoints
– By examining source code of client
– Or examining Web traffic while client runs
• Craft legitimate web service requests
– For all endpoints and operations
• Vulnerability Discovery
– By altering structure of contents of XML
documents sent to the web service endpoints
Web Services Description Language
(WSDL)
• An XML-based
interface
description language
– Used to describe
functionality offered
by a Web service
– Image from
Wikipedia (link Ch
6f)
SoapUI
• SoapUI can build a set of base test cases given a
URL to an identified WDSL
– Link Ch 6g
XML Injection Example
• Client sends
<?xml version="1.0"?>
<ProductRequest>
<Id>584654</Id>
</ProductRequest>
• Sever replies, echoing Id from client
<?xml version="1.0"?>
<ProductResponse>
<Id>584654</Id>
<Price>199.99</Price>
</ProductResponse>
XML Injection Example
• Client sends an Id of
584654</Id><Price>0.99</Price>
</ProductResponse>
<ProductResponse><Id>123
• Sever reply becomes
<?xml version="1.0"?>
<ProductResponse>
<Id>584654</Id><Price>0.99</Price>
</ProductResponse>
<ProductResponse><Id>123
</Id>
<Price>199.99</Price>
</ProductResponse>
Effect of XML Injection
• Depends on how server handles a strange
response like that
• Most would accept the first XML portion
with the modified price
XML Injection Countermeasures
• Input validation
– Best done with whitelisting (allowing only
known-good characters)
• Output encoding
– Change "<" to "&lt;"
• Use encoding functions from a trusted
source, such as OWASP
XML Entity Expansion
• A Denial-of-Service (DoS) attack using XML
entities that expand greatly at process
time
• The example sends a 662-byte request
that expands to 20 MB at the server
• Enough of these requests can stop a
server by RAM exhaustion
XML Entity Expansion
<?xml version="1.0"?>
<!DOCTYPE root [ <ENTITY a1 "I've often
seen a cat without a grin..."> ]>
<someElement1><someElement2>&a1;

</someElement2></someElement1>
Expands to
<?xml version="1.0"?>
<someElement1><someElement2>
I've often seen a cat without a grin...</
someElement2></someElement1>
XML Entity Expansion Example
POST /SomeWebServiceEndpoint HTTP/1.1
Host: www.example.com
Content-Length: 662
<?xml version="1.0"?>
<!DOCTYPE root [
<ENTITY a1 "I've often seen a cat without a grin...">
<ENTITY a2 "&a1;&a1;"><ENTITY a3 "&a2;&a2;">
<ENTITY a4 "&a3;&a3;"><ENTITY a5 "&a4;&a4;">
...
<ENTITY a20 "&a19;&a19;">
]>
<someElement1><someElement2>&a20;</someElement2></
someElement1>
XML Entity Expansion Countermeasures
• Disable Document Type Definitions (DTDs)
in the XML parser
• Set a limit on the depth of entity
expansions in the parser
• Note: phones have XML parsers too, and
can be attacked the same way
– The iOS NSXMLParser parser is protected
– But not Android's SAXParser
XML Entity Reference
• Abuse XML entities to acquire the
contents of files on the Web server
• The example on the next page defines an
external entity reference "fileContents"
that points to the hosts file on Windows
and uses it
XML Entity Reference Example
POST /SomeWebServiceEndpoint HTTP/1.1
Host: www.example.com
Content-Length: 196
<?xml version="1.0"?>
<!DOCTYPE fileDocType = [
<ENTITY fileContents SYSTEM "C:Windows
System32driversetchosts">
]>
<someElement1><someElement2>&fileContents;</
someElement2></someElement1>
XML Entity Reference
• If the XML parser supports DTDs with
external entities
– Many parsers do by default
– The parser will fetch the host file and may
display the file in the XML response to the
attacker
– It's limited only by file permissions
– If the Web service runs as root, it can read
any file
XML Entity Reference
• Can be used for DoS by
– Requesting a special device file, or
– Forcing the parser to make many HTTP
requests to remote resources, exhausting the
network connection pool
XML Entity Reference Countermeasures
• Disable DTDs altogether if you don't need
them
• Allow DTDs that contain general entities,
but
– Prevent the processing of external entities
• Set up an EntityResolver object to limit
access to a whitelist of resources
XML Entity Reference
• Can attack phones too
– Android is vulnerable and the same
countermeasures apply
– The iOS NSXMLParser class does not handle
external entities by default, but a developer
can enable this dangerous functionality
Common Authentication and
Authorization Frameworks
Authentication Issues
• Web apps typically authenticate with
passwords
– So do mobile apps
• Users don't want to type in the password
every time they use an app
– Storing user's credentials in plaintext is
unwise
Credential Storage Options
• Secure Element (SE)
– A special tamper-resistant hardware component
– Not present in all phones, although some have
one for NFC payment (link Ch 6h)
• Authorization Framework
– Such as OAuth
– First authenticates a user with a password
– Creates a token to be stored on the phone
– Less valuable than a password to an attacker
Recommendations
• Token can be made less dangerous
– Set reasonable expiration dates
– Restrict token's scope
– Revoke tokens that are known to be
compromised
• For financial apps
– Don't store any token at all on client-side
– Force the user to authenticate each time the
app is used
OAuth 2 

Open Authorization
• Popular
– Used by Google, Facebook, Yahoo!, LinkedIn,
and PayPal
• Allows one app to access protected
resources in another app without knowing
the user's credentials
– Like Microsoft's Federated Identity
Management
Main Actors in OAuth 2
• Resource owner
– End-user with access to credentials, who
owns the protected resources
• Resource server
– Server hosting protected resources
– Allows client access to the protected
resources when provided a valid access token
Main Actors in OAuth 2
• Client
– App seeking to access protected resources
– Typically a mobile app or web app
• Authorization Server
– Server that provides the client application
with access tokens
• After the resource owner has provided valid
credentials
OAuth 2 has Four Grant Types
• Client Credentials Grant
• Resource Owner Password Credentials Grant
• Authorization Code Grant
• Implicit Grant
• "User Agent" in these diagrams is either your
mobile browser or a WebView component
embedded within the application
OAuth Client Credentials Grant
• Stores password on client
• Should only be used for confidential clients
– That can maintain the confidentiality of their credentials
• Not usually appropriate for mobile devices because
of device theft
OAuth Client Credentials Grant
• OK if mobile app has access to a Secure
Element (SE)
– But most mobile apps cannot interface with a SE
• This grant type should be avoided
– Unless app takes additional steps to protect
authentication info
– Such as forcing user to enter a complex password
every time the app launches
– Password used to encrypt/decrypt authentication
info
OAuth Resource Owner Password
Credentials Grant Type
• App is trusted with credentials, but need not
save them
• It can save the token instead
OAuth Resource Owner Password
Credentials Grant Type
• OK if
– Client app is trusted not to leak credentials
to a third party
– Same entity controls authorization server,
resource server, and client app
• Better than storing credentials in
plaintext on the mobile device and
submitting them in every HTTP request
OAuth Authorization Code Grant Type
OAuth Authorization Code Grant Type
• 1. Client directs user-agent (browser or
WebView component) to authorization
endpoint
• Request includes
– Client identifier
– Requested scope
– Local state
– Redirection URI
Using Mobile WebView to Steal
Credentials
• In theory, client app cannot access resource
owner's credentials
– Because resource owner types credentials on
the authorization server's web page
– Via user-agent, typically a browser
• If a mobile app uses a WebView component
instead of an external mobile browser
– Client app can steal credentials with malicious
JavaScript
URL Redirection Attacks
• The URI in steps 1 and 4 could be
malicious, sending the client to a
dangerous website
– This could phish users, or steal tokens
• URIs should be validated, and enforced to
be equal in steps 1 and 4
OAuth Implicit Grant Type
https://samsclass.info/128/128_S15.shtml#projects
• The "#projects" is a fragment
• Not sent to server in HTTP request
– Used only by the browser to display the specified
potion of the page
– Link Ch 6i
OAuth Implicit Grant Type
• Token not sent to server in step 4
• In step 5, server sends JavaScript to get the
token
• Intermediate servers cannot see data
stored in the fragment
• Fragment does not appear in an
unencrypted form in client or web server
logs
– Limits some information leakage vulnerabilities
General OAuth Threats
Lack of TLS Enforcement
• OAuth does not support message-level
confidentiality or integrity
• Must use TLS to prevent sniffing of
– Authorization tokens
– Refresh tokens
– Access tokens
– Resource owner credentials
Cross-Site Request Forgery (CSRF)
• Attacker can steal a token by tricking the
user into visiting a malicious URL like
<img src="http://www.example.com/
oauth_endpoint?code=attacker_code">
• Will steal token
• Tokens can be re-used, unless optional
"state" parameter is enabled in OAuth 2
Improper Storage of Sensitive Data
• Server-side has many tokens and
credentials
• Must be secured against attack with
cryptographic controls
Overly Scoped Access Tokens
• Scope: level of access a token grants
• Token may enable
– Sending social networking messages on your
behalf, or
– Merely viewing portions of your social
messaging profile
• Follow principle of least privilege
Lack of Token Expiration
• Tokens that don't expire and are overly
scoped are almost as good as stealing
credentials
– Sometimes even better
– A password reset may not cause old tokens to
expire

More Related Content

What's hot

CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationSam Bowne
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)Sam Bowne
 
Mobile Application Scan and Testing
Mobile Application Scan and TestingMobile Application Scan and Testing
Mobile Application Scan and TestingBlueinfy Solutions
 
Core defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applicationsCore defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applicationsKaran Nagrecha
 
Mobile Authentication - Moving Towards a Passwordless Future
Mobile Authentication - Moving Towards a Passwordless FutureMobile Authentication - Moving Towards a Passwordless Future
Mobile Authentication - Moving Towards a Passwordless FutureForgeRock Identity Tech Talks
 
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tDefcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tPriyanka Aash
 
Securing Microservices with Spring Cloud Security
Securing Microservices with Spring Cloud SecuritySecuring Microservices with Spring Cloud Security
Securing Microservices with Spring Cloud SecurityWill Tran
 
iOS Application Security Testing
iOS Application Security TestingiOS Application Security Testing
iOS Application Security TestingBlueinfy Solutions
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationSam Bowne
 
Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!espheresecurity
 
Two Factor Authentication and You
Two Factor Authentication and YouTwo Factor Authentication and You
Two Factor Authentication and YouChris Stone
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsSam Bowne
 
Mobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseMobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseBlueinfy Solutions
 
Applciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationApplciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationBlueinfy Solutions
 
CNIT 128 7. Attacking Android Applications (Part 3)
CNIT 128 7. Attacking Android Applications (Part 3)CNIT 128 7. Attacking Android Applications (Part 3)
CNIT 128 7. Attacking Android Applications (Part 3)Sam Bowne
 
Secure Elements in Web Applications
Secure Elements in Web ApplicationsSecure Elements in Web Applications
Secure Elements in Web ApplicationsOlivier Potonniée
 
The presentation on my "Shadow Admins" research
The presentation on my "Shadow Admins" researchThe presentation on my "Shadow Admins" research
The presentation on my "Shadow Admins" researchAsaf Hecht
 

What's hot (20)

CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
 
Android secure coding
Android secure codingAndroid secure coding
Android secure coding
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
 
Mobile Application Scan and Testing
Mobile Application Scan and TestingMobile Application Scan and Testing
Mobile Application Scan and Testing
 
Core defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applicationsCore defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applications
 
Mobile Authentication - Moving Towards a Passwordless Future
Mobile Authentication - Moving Towards a Passwordless FutureMobile Authentication - Moving Towards a Passwordless Future
Mobile Authentication - Moving Towards a Passwordless Future
 
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tDefcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
 
Securing Microservices with Spring Cloud Security
Securing Microservices with Spring Cloud SecuritySecuring Microservices with Spring Cloud Security
Securing Microservices with Spring Cloud Security
 
iOS Application Security Testing
iOS Application Security TestingiOS Application Security Testing
iOS Application Security Testing
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking Authentication
 
Two-factor Authentication
Two-factor AuthenticationTwo-factor Authentication
Two-factor Authentication
 
Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!
 
Two Factor Authentication and You
Two Factor Authentication and YouTwo Factor Authentication and You
Two Factor Authentication and You
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access Controls
 
Mobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseMobile security chess board - attacks & defense
Mobile security chess board - attacks & defense
 
Applciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationApplciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumeration
 
CNIT 128 7. Attacking Android Applications (Part 3)
CNIT 128 7. Attacking Android Applications (Part 3)CNIT 128 7. Attacking Android Applications (Part 3)
CNIT 128 7. Attacking Android Applications (Part 3)
 
Secure Elements in Web Applications
Secure Elements in Web ApplicationsSecure Elements in Web Applications
Secure Elements in Web Applications
 
The presentation on my "Shadow Admins" research
The presentation on my "Shadow Admins" researchThe presentation on my "Shadow Admins" research
The presentation on my "Shadow Admins" research
 
Security testing in mobile applications
Security testing in mobile applicationsSecurity testing in mobile applications
Security testing in mobile applications
 

Viewers also liked

CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)
CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)
CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)Sam Bowne
 
CNIT 128 5: Mobile malware
CNIT 128 5: Mobile malwareCNIT 128 5: Mobile malware
CNIT 128 5: Mobile malwareSam Bowne
 
Ch 4: Footprinting and Social Engineering
Ch 4: Footprinting and Social EngineeringCh 4: Footprinting and Social Engineering
Ch 4: Footprinting and Social EngineeringSam Bowne
 
CNIT 127 Ch 2: Stack overflows on Linux
CNIT 127 Ch 2: Stack overflows on LinuxCNIT 127 Ch 2: Stack overflows on Linux
CNIT 127 Ch 2: Stack overflows on LinuxSam Bowne
 
CNIT 123 Ch 1: Ethical Hacking Overview
CNIT 123 Ch 1: Ethical Hacking OverviewCNIT 123 Ch 1: Ethical Hacking Overview
CNIT 123 Ch 1: Ethical Hacking OverviewSam Bowne
 
Ch 8: Desktop and Server OS Vulnerabilites
Ch 8: Desktop and Server OS VulnerabilitesCh 8: Desktop and Server OS Vulnerabilites
Ch 8: Desktop and Server OS VulnerabilitesSam Bowne
 
Ch 9: Embedded Operating Systems: The Hidden Threat
Ch 9: Embedded Operating Systems: The Hidden ThreatCh 9: Embedded Operating Systems: The Hidden Threat
Ch 9: Embedded Operating Systems: The Hidden ThreatSam Bowne
 
Ch 3: Network and Computer Attacks
Ch 3: Network and Computer AttacksCh 3: Network and Computer Attacks
Ch 3: Network and Computer AttacksSam Bowne
 
Ch 2: TCP/IP Concepts Review
Ch 2: TCP/IP Concepts ReviewCh 2: TCP/IP Concepts Review
Ch 2: TCP/IP Concepts ReviewSam Bowne
 
CNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsCNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsSam Bowne
 
Ch 6: Enumeration
Ch 6: EnumerationCh 6: Enumeration
Ch 6: EnumerationSam Bowne
 
Ch 7: Programming for Security Professionals
Ch 7: Programming for Security ProfessionalsCh 7: Programming for Security Professionals
Ch 7: Programming for Security ProfessionalsSam Bowne
 
Ch 12: Cryptography
Ch 12: CryptographyCh 12: Cryptography
Ch 12: CryptographySam Bowne
 
Ch 13: Network Protection Systems
Ch 13: Network Protection SystemsCh 13: Network Protection Systems
Ch 13: Network Protection SystemsSam Bowne
 
Ch 10: Hacking Web Servers
Ch 10: Hacking Web ServersCh 10: Hacking Web Servers
Ch 10: Hacking Web ServersSam Bowne
 
Practical Malware Analysis: Ch 15: Anti-Disassembly
Practical Malware Analysis: Ch 15: Anti-DisassemblyPractical Malware Analysis: Ch 15: Anti-Disassembly
Practical Malware Analysis: Ch 15: Anti-DisassemblySam Bowne
 
Ch 5: Port Scanning
Ch 5: Port ScanningCh 5: Port Scanning
Ch 5: Port ScanningSam Bowne
 
CNIT 127: Ch 8: Windows overflows (Part 1)
CNIT 127: Ch 8: Windows overflows (Part 1)CNIT 127: Ch 8: Windows overflows (Part 1)
CNIT 127: Ch 8: Windows overflows (Part 1)Sam Bowne
 
Mobile Services on a Shoestring
Mobile Services on a ShoestringMobile Services on a Shoestring
Mobile Services on a ShoestringSarah Houghton
 
mobile online services
mobile online servicesmobile online services
mobile online servicesRoche Labtang
 

Viewers also liked (20)

CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)
CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)
CNIT 127 Lecture 7: Intro to 64-Bit Assembler (not in book)
 
CNIT 128 5: Mobile malware
CNIT 128 5: Mobile malwareCNIT 128 5: Mobile malware
CNIT 128 5: Mobile malware
 
Ch 4: Footprinting and Social Engineering
Ch 4: Footprinting and Social EngineeringCh 4: Footprinting and Social Engineering
Ch 4: Footprinting and Social Engineering
 
CNIT 127 Ch 2: Stack overflows on Linux
CNIT 127 Ch 2: Stack overflows on LinuxCNIT 127 Ch 2: Stack overflows on Linux
CNIT 127 Ch 2: Stack overflows on Linux
 
CNIT 123 Ch 1: Ethical Hacking Overview
CNIT 123 Ch 1: Ethical Hacking OverviewCNIT 123 Ch 1: Ethical Hacking Overview
CNIT 123 Ch 1: Ethical Hacking Overview
 
Ch 8: Desktop and Server OS Vulnerabilites
Ch 8: Desktop and Server OS VulnerabilitesCh 8: Desktop and Server OS Vulnerabilites
Ch 8: Desktop and Server OS Vulnerabilites
 
Ch 9: Embedded Operating Systems: The Hidden Threat
Ch 9: Embedded Operating Systems: The Hidden ThreatCh 9: Embedded Operating Systems: The Hidden Threat
Ch 9: Embedded Operating Systems: The Hidden Threat
 
Ch 3: Network and Computer Attacks
Ch 3: Network and Computer AttacksCh 3: Network and Computer Attacks
Ch 3: Network and Computer Attacks
 
Ch 2: TCP/IP Concepts Review
Ch 2: TCP/IP Concepts ReviewCh 2: TCP/IP Concepts Review
Ch 2: TCP/IP Concepts Review
 
CNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsCNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflows
 
Ch 6: Enumeration
Ch 6: EnumerationCh 6: Enumeration
Ch 6: Enumeration
 
Ch 7: Programming for Security Professionals
Ch 7: Programming for Security ProfessionalsCh 7: Programming for Security Professionals
Ch 7: Programming for Security Professionals
 
Ch 12: Cryptography
Ch 12: CryptographyCh 12: Cryptography
Ch 12: Cryptography
 
Ch 13: Network Protection Systems
Ch 13: Network Protection SystemsCh 13: Network Protection Systems
Ch 13: Network Protection Systems
 
Ch 10: Hacking Web Servers
Ch 10: Hacking Web ServersCh 10: Hacking Web Servers
Ch 10: Hacking Web Servers
 
Practical Malware Analysis: Ch 15: Anti-Disassembly
Practical Malware Analysis: Ch 15: Anti-DisassemblyPractical Malware Analysis: Ch 15: Anti-Disassembly
Practical Malware Analysis: Ch 15: Anti-Disassembly
 
Ch 5: Port Scanning
Ch 5: Port ScanningCh 5: Port Scanning
Ch 5: Port Scanning
 
CNIT 127: Ch 8: Windows overflows (Part 1)
CNIT 127: Ch 8: Windows overflows (Part 1)CNIT 127: Ch 8: Windows overflows (Part 1)
CNIT 127: Ch 8: Windows overflows (Part 1)
 
Mobile Services on a Shoestring
Mobile Services on a ShoestringMobile Services on a Shoestring
Mobile Services on a Shoestring
 
mobile online services
mobile online servicesmobile online services
mobile online services
 

Similar to Ch 6 Part 1 Mobile Services and Web

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportGaurav Sharma
 
0_Leksion_Web_Servers (1).pdf
0_Leksion_Web_Servers (1).pdf0_Leksion_Web_Servers (1).pdf
0_Leksion_Web_Servers (1).pdfZani10
 
CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2scotttomilson
 
Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)Sam Bowne
 
Globus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformGlobus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformIan Foster
 
Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0Mads Toustrup-Lønne
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2Rodrigo Cândido da Silva
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...Brian Campbell
 
CIS13: Introduction to OAuth 2.0
CIS13: Introduction to OAuth 2.0CIS13: Introduction to OAuth 2.0
CIS13: Introduction to OAuth 2.0CloudIDSummit
 
Openstack identity protocols unconference
Openstack identity protocols unconferenceOpenstack identity protocols unconference
Openstack identity protocols unconferenceDavid Waite
 
OpenSocial and Mixi platform
OpenSocial and Mixi platformOpenSocial and Mixi platform
OpenSocial and Mixi platformPham Thinh
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Nino Ho
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsCarol McDonald
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...Good Dog Labs, Inc.
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthKashif Imran
 

Similar to Ch 6 Part 1 Mobile Services and Web (20)

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
 
0_Leksion_Web_Servers (1).pdf
0_Leksion_Web_Servers (1).pdf0_Leksion_Web_Servers (1).pdf
0_Leksion_Web_Servers (1).pdf
 
CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2
 
Introduction to OAuth2.0
Introduction to OAuth2.0Introduction to OAuth2.0
Introduction to OAuth2.0
 
Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)
 
Globus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformGlobus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management Platform
 
OAuth2
OAuth2OAuth2
OAuth2
 
Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
 
CIS13: Introduction to OAuth 2.0
CIS13: Introduction to OAuth 2.0CIS13: Introduction to OAuth 2.0
CIS13: Introduction to OAuth 2.0
 
Openstack identity protocols unconference
Openstack identity protocols unconferenceOpenstack identity protocols unconference
Openstack identity protocols unconference
 
OpenSocial and Mixi platform
OpenSocial and Mixi platformOpenSocial and Mixi platform
OpenSocial and Mixi platform
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
Ch-1_.ppt
Ch-1_.pptCh-1_.ppt
Ch-1_.ppt
 
Rest
RestRest
Rest
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 

More from Sam Bowne

3: DNS vulnerabilities
3: DNS vulnerabilities 3: DNS vulnerabilities
3: DNS vulnerabilities Sam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development SecuritySam Bowne
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam Bowne
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)Sam Bowne
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic CurvesSam Bowne
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-HellmanSam Bowne
 
2a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 12a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 1Sam Bowne
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android ApplicationsSam Bowne
 
12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)Sam Bowne
 
12 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 312 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 3Sam Bowne
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard ProblemsSam Bowne
 
8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)Sam Bowne
 
11 Analysis Methodology
11 Analysis Methodology11 Analysis Methodology
11 Analysis MethodologySam Bowne
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated EncryptionSam Bowne
 
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)Sam Bowne
 
7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)Sam Bowne
 
5. Stream Ciphers
5. Stream Ciphers5. Stream Ciphers
5. Stream CiphersSam Bowne
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data CollectionSam Bowne
 

More from Sam Bowne (20)

Cyberwar
CyberwarCyberwar
Cyberwar
 
3: DNS vulnerabilities
3: DNS vulnerabilities 3: DNS vulnerabilities
3: DNS vulnerabilities
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic Curves
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-Hellman
 
2a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 12a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 1
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android Applications
 
12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)
 
10 RSA
10 RSA10 RSA
10 RSA
 
12 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 312 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 3
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard Problems
 
8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)
 
11 Analysis Methodology
11 Analysis Methodology11 Analysis Methodology
11 Analysis Methodology
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated Encryption
 
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)
 
7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)
 
5. Stream Ciphers
5. Stream Ciphers5. Stream Ciphers
5. Stream Ciphers
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection
 

Recently uploaded

Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 

Recently uploaded (20)

FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 

Ch 6 Part 1 Mobile Services and Web

  • 1. Ch 6: Mobile Services and 
 Mobile Web
 Part 1 CNIT 128: Hacking Mobile Devices Updated 2-22-17
  • 2. Ch 6 Part 1 Through OAuth Part 2 starts with SAML
  • 3. Server-Side Technologies • SQL (Structured Query Language) – Servers that manage databases – Contain SSNs, credit card numbers, sometimes passwords, etc.
  • 4. Server-Side Technologies • SOAP (Simple Object Access Protocol) – XML-based middleware to exchange data between servers and clients – Can operate over any transport protocol such as HTTP, SMTP, TCP, UDP, or JMS (link Ch 6a) – Examples on next slides from link Ch 6l
  • 5.
  • 6.
  • 7. JSON v. XML • From link Ch 6n JSON XML
  • 8. Server-Side Technologies • ReST (Representational State Transfer) – Uses HTTP to transfer data between machines – The World Wide Web can be viewed as a REST- based architecture (link Ch 6c) – Send data with PUT, get it with GET (link Ch 6n)
  • 9. Server-Side Technologies • JSON (JavaScript Object Notation) – Lightweight data-interchange format – An alternative to XML (link Ch 6b) – Example from link Ch 6m
  • 10. Server-Side Vulnerabilities • Expose far more data than client-side vulnerabilities • Larger attack surface than client – Server runs services, some for clients, others for business logic, internal interfaces, databases, partner interfaces, etc.
  • 11. General Web Service Security Guidelines: OWASP Top Ten Mobile Risks 2016 Link Ch 6k
  • 12.
  • 13.
  • 15. Security Audit of XML-Based Web Service • Identify web service endpoints – By examining source code of client – Or examining Web traffic while client runs • Craft legitimate web service requests – For all endpoints and operations • Vulnerability Discovery – By altering structure of contents of XML documents sent to the web service endpoints
  • 16. Web Services Description Language (WSDL) • An XML-based interface description language – Used to describe functionality offered by a Web service – Image from Wikipedia (link Ch 6f)
  • 17. SoapUI • SoapUI can build a set of base test cases given a URL to an identified WDSL – Link Ch 6g
  • 18. XML Injection Example • Client sends <?xml version="1.0"?> <ProductRequest> <Id>584654</Id> </ProductRequest> • Sever replies, echoing Id from client <?xml version="1.0"?> <ProductResponse> <Id>584654</Id> <Price>199.99</Price> </ProductResponse>
  • 19. XML Injection Example • Client sends an Id of 584654</Id><Price>0.99</Price> </ProductResponse> <ProductResponse><Id>123 • Sever reply becomes <?xml version="1.0"?> <ProductResponse> <Id>584654</Id><Price>0.99</Price> </ProductResponse> <ProductResponse><Id>123 </Id> <Price>199.99</Price> </ProductResponse>
  • 20. Effect of XML Injection • Depends on how server handles a strange response like that • Most would accept the first XML portion with the modified price
  • 21. XML Injection Countermeasures • Input validation – Best done with whitelisting (allowing only known-good characters) • Output encoding – Change "<" to "&lt;" • Use encoding functions from a trusted source, such as OWASP
  • 22. XML Entity Expansion • A Denial-of-Service (DoS) attack using XML entities that expand greatly at process time • The example sends a 662-byte request that expands to 20 MB at the server • Enough of these requests can stop a server by RAM exhaustion
  • 23. XML Entity Expansion <?xml version="1.0"?> <!DOCTYPE root [ <ENTITY a1 "I've often seen a cat without a grin..."> ]> <someElement1><someElement2>&a1;
 </someElement2></someElement1> Expands to <?xml version="1.0"?> <someElement1><someElement2> I've often seen a cat without a grin...</ someElement2></someElement1>
  • 24. XML Entity Expansion Example POST /SomeWebServiceEndpoint HTTP/1.1 Host: www.example.com Content-Length: 662 <?xml version="1.0"?> <!DOCTYPE root [ <ENTITY a1 "I've often seen a cat without a grin..."> <ENTITY a2 "&a1;&a1;"><ENTITY a3 "&a2;&a2;"> <ENTITY a4 "&a3;&a3;"><ENTITY a5 "&a4;&a4;"> ... <ENTITY a20 "&a19;&a19;"> ]> <someElement1><someElement2>&a20;</someElement2></ someElement1>
  • 25. XML Entity Expansion Countermeasures • Disable Document Type Definitions (DTDs) in the XML parser • Set a limit on the depth of entity expansions in the parser • Note: phones have XML parsers too, and can be attacked the same way – The iOS NSXMLParser parser is protected – But not Android's SAXParser
  • 26. XML Entity Reference • Abuse XML entities to acquire the contents of files on the Web server • The example on the next page defines an external entity reference "fileContents" that points to the hosts file on Windows and uses it
  • 27. XML Entity Reference Example POST /SomeWebServiceEndpoint HTTP/1.1 Host: www.example.com Content-Length: 196 <?xml version="1.0"?> <!DOCTYPE fileDocType = [ <ENTITY fileContents SYSTEM "C:Windows System32driversetchosts"> ]> <someElement1><someElement2>&fileContents;</ someElement2></someElement1>
  • 28. XML Entity Reference • If the XML parser supports DTDs with external entities – Many parsers do by default – The parser will fetch the host file and may display the file in the XML response to the attacker – It's limited only by file permissions – If the Web service runs as root, it can read any file
  • 29. XML Entity Reference • Can be used for DoS by – Requesting a special device file, or – Forcing the parser to make many HTTP requests to remote resources, exhausting the network connection pool
  • 30. XML Entity Reference Countermeasures • Disable DTDs altogether if you don't need them • Allow DTDs that contain general entities, but – Prevent the processing of external entities • Set up an EntityResolver object to limit access to a whitelist of resources
  • 31. XML Entity Reference • Can attack phones too – Android is vulnerable and the same countermeasures apply – The iOS NSXMLParser class does not handle external entities by default, but a developer can enable this dangerous functionality
  • 33. Authentication Issues • Web apps typically authenticate with passwords – So do mobile apps • Users don't want to type in the password every time they use an app – Storing user's credentials in plaintext is unwise
  • 34. Credential Storage Options • Secure Element (SE) – A special tamper-resistant hardware component – Not present in all phones, although some have one for NFC payment (link Ch 6h) • Authorization Framework – Such as OAuth – First authenticates a user with a password – Creates a token to be stored on the phone – Less valuable than a password to an attacker
  • 35. Recommendations • Token can be made less dangerous – Set reasonable expiration dates – Restrict token's scope – Revoke tokens that are known to be compromised • For financial apps – Don't store any token at all on client-side – Force the user to authenticate each time the app is used
  • 36. OAuth 2 
 Open Authorization • Popular – Used by Google, Facebook, Yahoo!, LinkedIn, and PayPal • Allows one app to access protected resources in another app without knowing the user's credentials – Like Microsoft's Federated Identity Management
  • 37. Main Actors in OAuth 2 • Resource owner – End-user with access to credentials, who owns the protected resources • Resource server – Server hosting protected resources – Allows client access to the protected resources when provided a valid access token
  • 38. Main Actors in OAuth 2 • Client – App seeking to access protected resources – Typically a mobile app or web app • Authorization Server – Server that provides the client application with access tokens • After the resource owner has provided valid credentials
  • 39. OAuth 2 has Four Grant Types • Client Credentials Grant • Resource Owner Password Credentials Grant • Authorization Code Grant • Implicit Grant • "User Agent" in these diagrams is either your mobile browser or a WebView component embedded within the application
  • 40. OAuth Client Credentials Grant • Stores password on client • Should only be used for confidential clients – That can maintain the confidentiality of their credentials • Not usually appropriate for mobile devices because of device theft
  • 41. OAuth Client Credentials Grant • OK if mobile app has access to a Secure Element (SE) – But most mobile apps cannot interface with a SE • This grant type should be avoided – Unless app takes additional steps to protect authentication info – Such as forcing user to enter a complex password every time the app launches – Password used to encrypt/decrypt authentication info
  • 42. OAuth Resource Owner Password Credentials Grant Type • App is trusted with credentials, but need not save them • It can save the token instead
  • 43. OAuth Resource Owner Password Credentials Grant Type • OK if – Client app is trusted not to leak credentials to a third party – Same entity controls authorization server, resource server, and client app • Better than storing credentials in plaintext on the mobile device and submitting them in every HTTP request
  • 45. OAuth Authorization Code Grant Type • 1. Client directs user-agent (browser or WebView component) to authorization endpoint • Request includes – Client identifier – Requested scope – Local state – Redirection URI
  • 46. Using Mobile WebView to Steal Credentials • In theory, client app cannot access resource owner's credentials – Because resource owner types credentials on the authorization server's web page – Via user-agent, typically a browser • If a mobile app uses a WebView component instead of an external mobile browser – Client app can steal credentials with malicious JavaScript
  • 47. URL Redirection Attacks • The URI in steps 1 and 4 could be malicious, sending the client to a dangerous website – This could phish users, or steal tokens • URIs should be validated, and enforced to be equal in steps 1 and 4
  • 49. https://samsclass.info/128/128_S15.shtml#projects • The "#projects" is a fragment • Not sent to server in HTTP request – Used only by the browser to display the specified potion of the page – Link Ch 6i
  • 50. OAuth Implicit Grant Type • Token not sent to server in step 4 • In step 5, server sends JavaScript to get the token • Intermediate servers cannot see data stored in the fragment • Fragment does not appear in an unencrypted form in client or web server logs – Limits some information leakage vulnerabilities
  • 52. Lack of TLS Enforcement • OAuth does not support message-level confidentiality or integrity • Must use TLS to prevent sniffing of – Authorization tokens – Refresh tokens – Access tokens – Resource owner credentials
  • 53. Cross-Site Request Forgery (CSRF) • Attacker can steal a token by tricking the user into visiting a malicious URL like <img src="http://www.example.com/ oauth_endpoint?code=attacker_code"> • Will steal token • Tokens can be re-used, unless optional "state" parameter is enabled in OAuth 2
  • 54. Improper Storage of Sensitive Data • Server-side has many tokens and credentials • Must be secured against attack with cryptographic controls
  • 55. Overly Scoped Access Tokens • Scope: level of access a token grants • Token may enable – Sending social networking messages on your behalf, or – Merely viewing portions of your social messaging profile • Follow principle of least privilege
  • 56. Lack of Token Expiration • Tokens that don't expire and are overly scoped are almost as good as stealing credentials – Sometimes even better – A password reset may not cause old tokens to expire