SlideShare une entreprise Scribd logo
1  sur  94
Télécharger pour lire hors ligne
CNIT 129S: Securing
Web Applications
Ch 5: 

Bypassing Client-Side Controls
Clients Repeat Data
• It's common for a server to send data to
a client
• And for the client to repeat that same
data back to the server
• Developers often assume that the client
won't modify the data
Why Repeat Data?
• Avoids storing a lot of data within the user's
session; can improve performance
• An app deployed on many servers may not have
the required data available at each step
• Third-party components, such as shopping carts,
may be difficult to deploy without repeating data
• Getting approval to modify server-side API code
may be difficult and slow; storing data on the
client may be fast and easy
Hidden Form Fields
• Server sends
hidden price field
to client
Changing Price with Burp
Cookie Fields
• Discount amount in cookie
Demonstration
• Alter cookie value with Burp Repeater
URL Parameters
• No proxy
needed
• Just modify
the URL
Hidden URL Parameters
• <img src="http://foo.com?price=449">
• <iframe src="http://foo.com?price=449">
• <form action="http://foo.com?price=449"
method="POST">
• Pop-up windows or other techniques that hide
the URL bar
• All are unsafe; can be exploited with a proxy
Referer Header
• Shows the URL that sent the request
• Developers may use it as a security mechanism,
trusting it
Demo
Opaque Data
• Data may be encrypted or obfuscated
Handling Opaque Data
• If you know the plaintext, you may be able to
deduce the obfuscation algorithm
• App may contain functions elsewhere that you
can leverage to obfuscate plaintext you control
• You can replay opaque text without deciphering it
• Attack server-side logic with malformed strings,
such as overlong values, different character sets,
etc.
ASP.NET ViewState
• A hidden field created by default in all ASP.NET
web apps
• This code adds a price to the ViewState
ViewState
• Form sent to the user will now look like this
User Submits Form
• ViewState is Base64 Encoded
Decoded ViewState
Burp contains a ViewState parser (next slide)
Some ASP.NET apps use MAC protection
A 20-byte keyed hash at the end of the
ViewState structure
HTML Forms
• Only allows one
character
• Intending to set max. of
9
Defeated with a Proxy
Refreshing a Page
• If you see a 304 server response like this
• Page not sent from server, because browser has
already cached it
• Etag string is a sort of version number
If-Modified-Since:
• Browser sent a request like this
• May also use "If-None-Match" header
Forcing a Full Reload
• Use Shift+Refresh in browser
• Use Burp to remove the "If-Modified-Since" and
"If-None-Match" headers
Script-Based Validation
Defeated with Burp
• Replace value after script runs
• Could also disable JavaScript, or modify the script
Tips
• Where JavaScript is used for input validation
• Submit data that would have failed validation
• Using a proxy, or with modified source code
• Determine whether validation is also performed
on the server
• If multiple fields are validated, enter valid data in
all fields except one at a time, to test all the cases
Proper Use
• Client-side validation can improve performance
and user experience
• Faster response and no wasted server time on
invalid entries
• But the validation cannot be trusted and must
be repeated on the server
Disabled Elements
Disabled Elements
• Cannot be changed
• Not sent to server
Add Parameter in Burp
• Use Add button to insert the disabled field
• It may still be used on server-side
Burp Response Modification
Form is Easy to Hack
Browser Extensions
• Flash or Java client-side routines can collect
and process user input
• Internal workings are less transparent than
HTML forms and JavaScript
• But still subject to user modification
Example: Casino App
• Client could
• Tamper with game state to gain an advantage
• Bypass client-side controls to perform illegal
actions
• Find a hidden function, parameter, or resource to
gain illegitimate access to a server-side resource
• Receive information about other players to gain
an advantage
Common Browser Extensions
• Java applets, Flash, and Silverlight
• All have these features
• Compiled to bytecode
• Execute in a virtual machine that provides a
sandbox
• May use remoting frameworks employing
serialization to transmit complex data
structures or objects over HTTP (link Ch5c)
Java
• Java applets run in the Java Virtual Machine
(JVM)
• Sandboxed by Java Security Policy
Flash
• Runs in Flash virtual machine
• Sandvoxed from host computer
• ActionScript 3 adds remoting capability with
Action Message Format (AMF) serialization
Silverlight
• Microsoft's alternative to Flash
• Provides a scaled-down .NET experience within
the browser
• In a sandboxed environment
• Apps most commonly written in C#, but other
languages like Python can be used
Approaches to Browser
Extensions
• Intercept requests and responses in a proxy
• May be obfuscated or encrypted
• Cannot explore all business logic
• Decompile bytecode and read source, or run it
in a debugger
• Time-consuming and requires detailed
understanding of the technologies and
programming languages used
Intercepting Traffic from
Browser Extensions
• Allows you to defeat server-side controls, same
as earlier in this chapter
• Serialized data may be tricky to modify
• Must unpack it, edit it, and repack it correctly
Java Serialization
• Content-type header indicates serialized data
• DSer is a Burp plug-in handles such data
DSer in Action
• Raw request on left, unpacked version on right
• Link Ch 5d
Flash Serialization
• Content-type header
• Burp natively handles AMF format
Silverlight Serialization
• Uses two instances of Burp (Link Ch 5e)
Obstacles to Intercepting
Traffic from Browser Extensions
• Some requests may bypass the proxy settings
in your browser
• Components may issue their own HTTP
requests, outside browser APIs
• Solution: modify hosts file and use invisible
proxying
Obstacles to Intercepting Traffic
from Browser Extensions
• Client component may reject the SSL certificate
from the proxy
• Because browser extension does not pick up
browser's configuration for temporarily trusted
certificates
• Or component is programmed not to accept
untrusted certificates
• Solution: set proxy to use a master CA
certificate; install in your trusted certificate store
Obstacles to Intercepting
Traffic from Browser Extensions
• Client uses a non-HTTP protocol
• You can use a sniffer like Wireshark
• Or a function-hooking tool like Echo Mirage
• Can inject into a process and intercept its calls to
socket APIs
• So you can modify data before it's sent over the
network
• But it seems to be gone
Tips
• Ensure that your proxy is correctly intercepting
all traffic; check with a sniffer
• Use appropriate serialization unpacker
• Review responses from the server that trigger
client-side logic; you may be able to unlock the
client GUI to reveal privileges actions
• Look for correlation between critical actions
and communications with the server
• Does rolling the dice in a gambling app take
place on server or client?
Decompiling Browser
Extensions
• Most thorough method
• Extensions are compiled into bytecode
• High-level platform-independent binary
representation
• Some apps use defensive measures to
obfuscate bytecode
Downloading the Bytecode
• Find link to bytecode in HTML source code
• Java applets generally use <applet> tag
• Others use <object> tag
• Once you find the URL, put it in browser
address bar to donload the bytecode
Downloading the Bytecode
• If URL is not easy to find, look in proxy history
after loading the app
• Some proxies filter the history to hide items
such as images and style sheet files; the object
might be filtered
• Browsers cache bytecode aggressively, and
even a full refresh won't request component
again
• Must clear cache and restart browser
Decompiling the Bytecode
• Java applets are usually .jar files
• Containing .class files with bytecode
• Silverlight objects are .xap files
• Containing .dll files with bytecode
• Both are Zip archives; rename them to .zip and
unzip them with any unzip utility
• Flash objects are .swf files; no unpacking required
Decompilers
• Jad for Java (link Ch 5f)
• For Flash: Flasm or Flare (links Ch 5g, 5h)
• SWFScan was bundled into WebInspect
• 15-day trial at link Ch 5i
• Silverlight: use .NET Reflector
• Free trial at link Ch 5j
Example: Bank of America
Android App
• Pull from phone with adb
• Unpack with apktool
Files and Folders
• Unpacked app is many .smali files (Android
Java bytecode)
Java v. Bytecode
Modifying Smali Code
Pack and Sign
Trojaned App Leaks Credit
Card Numbers
Working on the Client-Side
Source Code
• Input validation or other security-relevant logic
• Obfuscation or encryption
• "Hidden" functionality, not visible in user
interface
• You might be able to unlock it by modifying
code
• References to server-side functionality you
haven't already found via mapping
Recompiling
• For Java, use javac from the JDK
• For Flash, use flasm, or a Flash development
studio from Adobe
• For Silverlight, use Visual Studio
• For Java or Silverlight, zip the code and change
file extension to .jar or .xap
Loading Modified
Component into a Browser
• Find original component within the browser
cache and replace it
• Use a proxy to modify the source code of the
page that loads the component and specify a
different URL pointing to your modified
component
• Difficult--may violate same-origin policy
Loading Modified
Component into a Browser
• Use a proxy to intercept the response
containing the executable and replace the body
of the message with your modified version
• Burp has "Paste from File" option for this
Recompiling and Executing
Outside the Browser
• Modify app to run as a standalone program
• For Java, just implement a "main" method
Manipulating the Original
Component using JavaScript
• Using a proxy, intercept and edit responses
• To add JavaScript that unlocks hidden parts of
the interface
Bytecode Obfuscation
• Difficult to read
Obfuscation Methods
• Meaningful names replaced with meaningless
expressions such as a, b, c, ...
• Replace names with reserved keywords such as
"new" and "int"
• Most VMs tolerate such technically illegal
code, but it cannot be recompiled
Obfuscation Methods
• Strip unnecessary debug and meta-information
from bytecode, such as
• Source filenames and line numbers
• Local variable names
• Inner class information
• Add redundant code that confuses the reverse
engineer
Obfuscation Methods
• Modify path of execution, make it convoluted
• Using "jump" instructions
• Add illegal programming constructs
• Unreachable statements
• Missing "return" statements
• VMs tolerate them, but decompiled source
cannot be recompiled without correcting them
Tips
• Some components will remain readable even if
source is obfuscated, such as methods called
from JavaScript
• Many Integrated Development Environments
(IDE's) can make code more readable by
"refactoring" it (link Ch 5k)
• Running code through an abfuscator a second
time can remove a lot of the obfuscation (see
JODE, link Ch 5l)
Example: Shopping Java
Applet
• This portion of the code defines a hidden field
named "obfpad"
Example Continued
• JavaScript validator
Example Continued
• This code loads the Java applet
"CheckQuantity.class"
Example Continued
• Form is submitted with quantity of 2
• It sends this POST request
• quantity is obfuscated
Download Applet and
Decompile with Jad
Decompiled Java
• Header
Decompiled Java
• Verifies tha qty is between 0 and 50
• Prepares a string to hold obfuscated text
Decompiled Java
• XORs text with obfpad
Modified Applet
• Remove input validation from "doCheck"
• Add a "main" method that calls "doCheck" and
prints the obfuscated result
• Code on next page outputs obfuscated string
for quantity of 999
• Try various values, including strings, to find
vulnerabilities
Recompile with javac
JavaSnoop
• Free Java Debugger (Links Ch 5m, 5n)
• Example: Java Login Applet
Attach to Process
Hook Classes
Edit Credentials
Canary Mode
• Follow "canary" values through app
• Works with Burp
Native Client Components
• Some actions cannot be done from a sandbox
• Verifying that the user has up-to-date
antivirus
• Verifying proxy settings
• Integrating with a smartcard reader
• For these, native code components like ActiveX
are used; they run outside the sandbox
Reverse-Engineering Native
Code
• OllyDbg to debug
• IDA Pro or Hopper to disassemble
Handing Client-Side Data
Securely
• Don't send critical data like prices from the
client
• Send product ID and look up price on server
• If you must send important data, sign and/or
encrypt it to avoid user tampering
• May be vulnerable to replay or cryptographic
attacks
Validating Client-Generated
Data
• All client-side validation methods are vulnerable
• They may be useful for performance, but they
can never be trusted
• The only secure way to validate data is on the
server
Logs and Alerts
• Server-side intrusion detection defenses should
be aware of client-side validation
• It should detect invalid data as probably
malicious, triggering alerts and log entries
• May terminate user's session, or suspend user's
account

Contenu connexe

Tendances

CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesSam Bowne
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationSam Bowne
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsSam Bowne
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)Sam Bowne
 
CNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking AuthenticationCNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking AuthenticationSam Bowne
 
CNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End ComponentsCNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End ComponentsSam Bowne
 
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)Sam Bowne
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationSam Bowne
 
Ch 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsCh 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsSam Bowne
 
Ch 3: Web Application Technologies
Ch 3: Web Application TechnologiesCh 3: Web Application Technologies
Ch 3: Web Application TechnologiesSam Bowne
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)Sam Bowne
 
CSRF, ClickJacking & Open Redirect
CSRF, ClickJacking & Open RedirectCSRF, ClickJacking & Open Redirect
CSRF, ClickJacking & Open RedirectBlueinfy Solutions
 
AppSec 2007 - .NET Web Services Hacking
AppSec 2007 - .NET Web Services HackingAppSec 2007 - .NET Web Services Hacking
AppSec 2007 - .NET Web Services HackingShreeraj Shah
 
Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Blueinfy Solutions
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Sam Bowne
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSource Conference
 
Hacking web applications
Hacking web applicationsHacking web applications
Hacking web applicationsAdeel Javaid
 

Tendances (20)

CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the Application
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access Controls
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
 
CNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking AuthenticationCNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking Authentication
 
CNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End ComponentsCNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End Components
 
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 2 of 2)
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking Authentication
 
Ch 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsCh 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side Controls
 
Ch 3: Web Application Technologies
Ch 3: Web Application TechnologiesCh 3: Web Application Technologies
Ch 3: Web Application Technologies
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
 
CSRF, ClickJacking & Open Redirect
CSRF, ClickJacking & Open RedirectCSRF, ClickJacking & Open Redirect
CSRF, ClickJacking & Open Redirect
 
AppSec 2007 - .NET Web Services Hacking
AppSec 2007 - .NET Web Services HackingAppSec 2007 - .NET Web Services Hacking
AppSec 2007 - .NET Web Services Hacking
 
Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013
 
Html5 on mobile
Html5 on mobileHtml5 on mobile
Html5 on mobile
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful Applications
 
Application fuzzing
Application fuzzingApplication fuzzing
Application fuzzing
 
Hacking web applications
Hacking web applicationsHacking web applications
Hacking web applications
 
Introduction to shodan
Introduction to shodanIntroduction to shodan
Introduction to shodan
 

En vedette

CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)Sam Bowne
 
CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)Sam Bowne
 
CNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management HandbookCNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management HandbookSam Bowne
 
CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologySam Bowne
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondSam Bowne
 
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...Sam Bowne
 
CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1Sam Bowne
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationSam Bowne
 
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data CollectionCNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data CollectionSam Bowne
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesSam Bowne
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidSam Bowne
 
CNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you BeginCNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you BeginSam Bowne
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?Sam Bowne
 
CNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSSam Bowne
 
Practical Malware Analysis Ch 14: Malware-Focused Network Signatures
Practical Malware Analysis Ch 14: Malware-Focused Network SignaturesPractical Malware Analysis Ch 14: Malware-Focused Network Signatures
Practical Malware Analysis Ch 14: Malware-Focused Network SignaturesSam 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
 
CNIT 40: 4: Monitoring and detecting security breaches
CNIT 40: 4: Monitoring and detecting security breachesCNIT 40: 4: Monitoring and detecting security breaches
CNIT 40: 4: Monitoring and detecting security breachesSam Bowne
 
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly Sam Bowne
 
CNIT 40: 2: DNS Protocol and Architecture
CNIT 40: 2: DNS Protocol and ArchitectureCNIT 40: 2: DNS Protocol and Architecture
CNIT 40: 2: DNS Protocol and ArchitectureSam 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
 

En vedette (20)

CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
 
CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)
 
CNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management HandbookCNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management Handbook
 
CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis Methodology
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
 
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
 
CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident Preparation
 
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data CollectionCNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilities
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
 
CNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you BeginCNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you Begin
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?
 
CNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOS
 
Practical Malware Analysis Ch 14: Malware-Focused Network Signatures
Practical Malware Analysis Ch 14: Malware-Focused Network SignaturesPractical Malware Analysis Ch 14: Malware-Focused Network Signatures
Practical Malware Analysis Ch 14: Malware-Focused Network Signatures
 
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
 
CNIT 40: 4: Monitoring and detecting security breaches
CNIT 40: 4: Monitoring and detecting security breachesCNIT 40: 4: Monitoring and detecting security breaches
CNIT 40: 4: Monitoring and detecting security breaches
 
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
 
CNIT 40: 2: DNS Protocol and Architecture
CNIT 40: 2: DNS Protocol and ArchitectureCNIT 40: 2: DNS Protocol and Architecture
CNIT 40: 2: DNS Protocol and Architecture
 
Ch 7: Programming for Security Professionals
Ch 7: Programming for Security ProfessionalsCh 7: Programming for Security Professionals
Ch 7: Programming for Security Professionals
 

Similaire à CNIT 129S: Ch 5: Bypassing Client-Side Controls

Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosDeep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosSajith C P Nair
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webpartsPrabhu Nehru
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced TroubleshootingJohn Calvert
 
Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudVitebsk DSC
 
Salesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide DeckSalesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide Deckbrightgenss
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescueMarko Heijnen
 
Salesforce Spring 23 Webinar
Salesforce Spring 23 WebinarSalesforce Spring 23 Webinar
Salesforce Spring 23 Webinarbrightgenss
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile appsMugunth Kumar
 
SFDC Inbound Integrations
SFDC Inbound IntegrationsSFDC Inbound Integrations
SFDC Inbound IntegrationsSujit Kumar
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...Amazon Web Services
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveGabriel Michaud
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...Amazon Web Services
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam Bowne
 
be the captain of your connections deployment
be the captain of your connections deploymentbe the captain of your connections deployment
be the captain of your connections deploymentSharon James
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computingBaskar rao Dsn
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functionsBaskar rao Dsn
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton UniversityTaswar Bhatti
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
 

Similaire à CNIT 129S: Ch 5: Bypassing Client-Side Controls (20)

Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosDeep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
 
Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring Cloud
 
Salesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide DeckSalesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide Deck
 
Codeigniter framework
Codeigniter framework Codeigniter framework
Codeigniter framework
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 
Salesforce Spring 23 Webinar
Salesforce Spring 23 WebinarSalesforce Spring 23 Webinar
Salesforce Spring 23 Webinar
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile apps
 
SFDC Inbound Integrations
SFDC Inbound IntegrationsSFDC Inbound Integrations
SFDC Inbound Integrations
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep Dive
 
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
SRV418 Deep Dive on Accelerating Content, APIs, and Applications with Amazon ...
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
be the captain of your connections deployment
be the captain of your connections deploymentbe the captain of your connections deployment
be the captain of your connections deployment
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computing
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton University
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
 

Plus de 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
 
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
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers Sam Bowne
 

Plus de 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
 
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
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers
 

Dernier

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 

Dernier (20)

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 

CNIT 129S: Ch 5: Bypassing Client-Side Controls

  • 1. CNIT 129S: Securing Web Applications Ch 5: 
 Bypassing Client-Side Controls
  • 2. Clients Repeat Data • It's common for a server to send data to a client • And for the client to repeat that same data back to the server • Developers often assume that the client won't modify the data
  • 3. Why Repeat Data? • Avoids storing a lot of data within the user's session; can improve performance • An app deployed on many servers may not have the required data available at each step • Third-party components, such as shopping carts, may be difficult to deploy without repeating data • Getting approval to modify server-side API code may be difficult and slow; storing data on the client may be fast and easy
  • 4. Hidden Form Fields • Server sends hidden price field to client
  • 6. Cookie Fields • Discount amount in cookie
  • 7. Demonstration • Alter cookie value with Burp Repeater
  • 8. URL Parameters • No proxy needed • Just modify the URL
  • 9. Hidden URL Parameters • <img src="http://foo.com?price=449"> • <iframe src="http://foo.com?price=449"> • <form action="http://foo.com?price=449" method="POST"> • Pop-up windows or other techniques that hide the URL bar • All are unsafe; can be exploited with a proxy
  • 10. Referer Header • Shows the URL that sent the request • Developers may use it as a security mechanism, trusting it
  • 11. Demo
  • 12. Opaque Data • Data may be encrypted or obfuscated
  • 13. Handling Opaque Data • If you know the plaintext, you may be able to deduce the obfuscation algorithm • App may contain functions elsewhere that you can leverage to obfuscate plaintext you control • You can replay opaque text without deciphering it • Attack server-side logic with malformed strings, such as overlong values, different character sets, etc.
  • 14. ASP.NET ViewState • A hidden field created by default in all ASP.NET web apps • This code adds a price to the ViewState
  • 15. ViewState • Form sent to the user will now look like this
  • 16. User Submits Form • ViewState is Base64 Encoded
  • 17. Decoded ViewState Burp contains a ViewState parser (next slide) Some ASP.NET apps use MAC protection A 20-byte keyed hash at the end of the ViewState structure
  • 18.
  • 19. HTML Forms • Only allows one character • Intending to set max. of 9
  • 21. Refreshing a Page • If you see a 304 server response like this • Page not sent from server, because browser has already cached it • Etag string is a sort of version number
  • 22. If-Modified-Since: • Browser sent a request like this • May also use "If-None-Match" header
  • 23. Forcing a Full Reload • Use Shift+Refresh in browser • Use Burp to remove the "If-Modified-Since" and "If-None-Match" headers
  • 25. Defeated with Burp • Replace value after script runs • Could also disable JavaScript, or modify the script
  • 26. Tips • Where JavaScript is used for input validation • Submit data that would have failed validation • Using a proxy, or with modified source code • Determine whether validation is also performed on the server • If multiple fields are validated, enter valid data in all fields except one at a time, to test all the cases
  • 27. Proper Use • Client-side validation can improve performance and user experience • Faster response and no wasted server time on invalid entries • But the validation cannot be trusted and must be repeated on the server
  • 29. Disabled Elements • Cannot be changed • Not sent to server
  • 30. Add Parameter in Burp • Use Add button to insert the disabled field • It may still be used on server-side
  • 32. Form is Easy to Hack
  • 33. Browser Extensions • Flash or Java client-side routines can collect and process user input • Internal workings are less transparent than HTML forms and JavaScript • But still subject to user modification
  • 34. Example: Casino App • Client could • Tamper with game state to gain an advantage • Bypass client-side controls to perform illegal actions • Find a hidden function, parameter, or resource to gain illegitimate access to a server-side resource • Receive information about other players to gain an advantage
  • 35. Common Browser Extensions • Java applets, Flash, and Silverlight • All have these features • Compiled to bytecode • Execute in a virtual machine that provides a sandbox • May use remoting frameworks employing serialization to transmit complex data structures or objects over HTTP (link Ch5c)
  • 36. Java • Java applets run in the Java Virtual Machine (JVM) • Sandboxed by Java Security Policy
  • 37. Flash • Runs in Flash virtual machine • Sandvoxed from host computer • ActionScript 3 adds remoting capability with Action Message Format (AMF) serialization
  • 38. Silverlight • Microsoft's alternative to Flash • Provides a scaled-down .NET experience within the browser • In a sandboxed environment • Apps most commonly written in C#, but other languages like Python can be used
  • 39. Approaches to Browser Extensions • Intercept requests and responses in a proxy • May be obfuscated or encrypted • Cannot explore all business logic • Decompile bytecode and read source, or run it in a debugger • Time-consuming and requires detailed understanding of the technologies and programming languages used
  • 40. Intercepting Traffic from Browser Extensions • Allows you to defeat server-side controls, same as earlier in this chapter • Serialized data may be tricky to modify • Must unpack it, edit it, and repack it correctly
  • 41. Java Serialization • Content-type header indicates serialized data • DSer is a Burp plug-in handles such data
  • 42. DSer in Action • Raw request on left, unpacked version on right • Link Ch 5d
  • 43. Flash Serialization • Content-type header • Burp natively handles AMF format
  • 44.
  • 45. Silverlight Serialization • Uses two instances of Burp (Link Ch 5e)
  • 46. Obstacles to Intercepting Traffic from Browser Extensions • Some requests may bypass the proxy settings in your browser • Components may issue their own HTTP requests, outside browser APIs • Solution: modify hosts file and use invisible proxying
  • 47. Obstacles to Intercepting Traffic from Browser Extensions • Client component may reject the SSL certificate from the proxy • Because browser extension does not pick up browser's configuration for temporarily trusted certificates • Or component is programmed not to accept untrusted certificates • Solution: set proxy to use a master CA certificate; install in your trusted certificate store
  • 48. Obstacles to Intercepting Traffic from Browser Extensions • Client uses a non-HTTP protocol • You can use a sniffer like Wireshark • Or a function-hooking tool like Echo Mirage • Can inject into a process and intercept its calls to socket APIs • So you can modify data before it's sent over the network • But it seems to be gone
  • 49. Tips • Ensure that your proxy is correctly intercepting all traffic; check with a sniffer • Use appropriate serialization unpacker • Review responses from the server that trigger client-side logic; you may be able to unlock the client GUI to reveal privileges actions • Look for correlation between critical actions and communications with the server • Does rolling the dice in a gambling app take place on server or client?
  • 50. Decompiling Browser Extensions • Most thorough method • Extensions are compiled into bytecode • High-level platform-independent binary representation • Some apps use defensive measures to obfuscate bytecode
  • 51. Downloading the Bytecode • Find link to bytecode in HTML source code • Java applets generally use <applet> tag • Others use <object> tag • Once you find the URL, put it in browser address bar to donload the bytecode
  • 52. Downloading the Bytecode • If URL is not easy to find, look in proxy history after loading the app • Some proxies filter the history to hide items such as images and style sheet files; the object might be filtered • Browsers cache bytecode aggressively, and even a full refresh won't request component again • Must clear cache and restart browser
  • 53.
  • 54. Decompiling the Bytecode • Java applets are usually .jar files • Containing .class files with bytecode • Silverlight objects are .xap files • Containing .dll files with bytecode • Both are Zip archives; rename them to .zip and unzip them with any unzip utility • Flash objects are .swf files; no unpacking required
  • 55. Decompilers • Jad for Java (link Ch 5f) • For Flash: Flasm or Flare (links Ch 5g, 5h) • SWFScan was bundled into WebInspect • 15-day trial at link Ch 5i • Silverlight: use .NET Reflector • Free trial at link Ch 5j
  • 56. Example: Bank of America Android App • Pull from phone with adb • Unpack with apktool
  • 57. Files and Folders • Unpacked app is many .smali files (Android Java bytecode)
  • 61. Trojaned App Leaks Credit Card Numbers
  • 62. Working on the Client-Side Source Code • Input validation or other security-relevant logic • Obfuscation or encryption • "Hidden" functionality, not visible in user interface • You might be able to unlock it by modifying code • References to server-side functionality you haven't already found via mapping
  • 63. Recompiling • For Java, use javac from the JDK • For Flash, use flasm, or a Flash development studio from Adobe • For Silverlight, use Visual Studio • For Java or Silverlight, zip the code and change file extension to .jar or .xap
  • 64. Loading Modified Component into a Browser • Find original component within the browser cache and replace it • Use a proxy to modify the source code of the page that loads the component and specify a different URL pointing to your modified component • Difficult--may violate same-origin policy
  • 65. Loading Modified Component into a Browser • Use a proxy to intercept the response containing the executable and replace the body of the message with your modified version • Burp has "Paste from File" option for this
  • 66.
  • 67. Recompiling and Executing Outside the Browser • Modify app to run as a standalone program • For Java, just implement a "main" method
  • 68. Manipulating the Original Component using JavaScript • Using a proxy, intercept and edit responses • To add JavaScript that unlocks hidden parts of the interface
  • 70. Obfuscation Methods • Meaningful names replaced with meaningless expressions such as a, b, c, ... • Replace names with reserved keywords such as "new" and "int" • Most VMs tolerate such technically illegal code, but it cannot be recompiled
  • 71. Obfuscation Methods • Strip unnecessary debug and meta-information from bytecode, such as • Source filenames and line numbers • Local variable names • Inner class information • Add redundant code that confuses the reverse engineer
  • 72. Obfuscation Methods • Modify path of execution, make it convoluted • Using "jump" instructions • Add illegal programming constructs • Unreachable statements • Missing "return" statements • VMs tolerate them, but decompiled source cannot be recompiled without correcting them
  • 73. Tips • Some components will remain readable even if source is obfuscated, such as methods called from JavaScript • Many Integrated Development Environments (IDE's) can make code more readable by "refactoring" it (link Ch 5k) • Running code through an abfuscator a second time can remove a lot of the obfuscation (see JODE, link Ch 5l)
  • 74. Example: Shopping Java Applet • This portion of the code defines a hidden field named "obfpad"
  • 76. Example Continued • This code loads the Java applet "CheckQuantity.class"
  • 77. Example Continued • Form is submitted with quantity of 2 • It sends this POST request • quantity is obfuscated
  • 80. Decompiled Java • Verifies tha qty is between 0 and 50 • Prepares a string to hold obfuscated text
  • 81. Decompiled Java • XORs text with obfpad
  • 82. Modified Applet • Remove input validation from "doCheck" • Add a "main" method that calls "doCheck" and prints the obfuscated result • Code on next page outputs obfuscated string for quantity of 999 • Try various values, including strings, to find vulnerabilities
  • 83.
  • 85. JavaSnoop • Free Java Debugger (Links Ch 5m, 5n) • Example: Java Login Applet
  • 89. Canary Mode • Follow "canary" values through app • Works with Burp
  • 90. Native Client Components • Some actions cannot be done from a sandbox • Verifying that the user has up-to-date antivirus • Verifying proxy settings • Integrating with a smartcard reader • For these, native code components like ActiveX are used; they run outside the sandbox
  • 91. Reverse-Engineering Native Code • OllyDbg to debug • IDA Pro or Hopper to disassemble
  • 92. Handing Client-Side Data Securely • Don't send critical data like prices from the client • Send product ID and look up price on server • If you must send important data, sign and/or encrypt it to avoid user tampering • May be vulnerable to replay or cryptographic attacks
  • 93. Validating Client-Generated Data • All client-side validation methods are vulnerable • They may be useful for performance, but they can never be trusted • The only secure way to validate data is on the server
  • 94. Logs and Alerts • Server-side intrusion detection defenses should be aware of client-side validation • It should detect invalid data as probably malicious, triggering alerts and log entries • May terminate user's session, or suspend user's account