SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
CNIT 129S: Securing
Web Applications
Ch 11: Attacking Application Logic
Logic Flaws
• No common signature, such as found in
SQL injection
• Often an assumption a developer made
• Difficult to find and eliminate
Real-World Logic Flaws
1. Asking the Oracle
• "Remember me" function sets a permanent
cookie
• Containing an encrypted string that contains
• Name, User ID, and volatile data to make it
unique and unpredictable, including machine IP
address
• Screen name also saved in encrypted form as
ScreenName
Assumption
• It's OK to use same encryption algorithm to
encrypt both cookies
• But user can control ScreenName
• And the app decrypts that cookie, showing the
result on the screen
The Attack
• Copy the RememberMe cookie into the
ScreenName cookie
• The app decrypts it and shows the result
• Now change screen name to
The Attack
• Log out, log back in, and copy the new
ScreenName cookie to the RememberMe cookie
• Attacker is now admin!
• Encryption was 3DES and unbreakable, but it
didn't matter
Hack Steps
• Look for items that are encrypted, not hashed
• With data from the user
• Substitute other encrypted values
• Try to cause an error that reveals the decrypted
value
2. Fooling a Password
Change Function
• Form for password change asks for
• Username
• Existing password
• New password
• Confirm new password
2. Fooling a Password
Change Function
• Administrators have a form that can change any
password, implemented by the same server-side
script
• Administrator's form doesn't ask for existing
password
The Assumption
• When a request comes in without an existing
password, that indicates that it came from an
administrator
The Attack
• Submit a password change without any existing
password
• Reset anyone's password
• This really happened in the AOL AIM Enterprise
Gateway application
Hack Steps
• Try deleting each parameter, one by one
• Delete the name as well as the value
• Try it at each step of the process
3. Proceeding to Checkout
• Assumption
• Users will perform steps in sequence
• A user on the last step must have entered
payment details
The Attack
• "Forced Browsing"
• Circumvent controls that make the steps
occur in sequence
• Proceed directly from step 2 to step 4
• Get product without paying for it
Hack Steps
• Try skipping stages, doing a single stage more
than once, and doing earlier stages after later
ones
• Stages may use different URLs or parameter
values
• Guess assumptions and violate them
• Watch for interesting error messages
4. Rolling Your Own
Insurance
• App lets users obtain quotes for insurance, and,
if desired, submit an insurance application online
• It used a dozen stages
• 1. Applicant submits basic information, and
either preferred monthly premium or amount of
desired insurance payout
• App computes values the applicant did not
specify
4. Rolling Your Own
Insurance
• 2. Across several stages, applicant supplies
other personal details: health, occupation,
pastimes, etc.
• 3. Finally application is sent to an underwriter
• Underwriter uses the same web app to review
the details and decide whether to approve the
application, or modify the initial quote to
reflect additional risks
4. Rolling Your Own
Insurance
• Each stage uses a shared component to
process each parameter of user data
• Component parsed all data in each POST
request into name/value pairs and updated state
information
Assumption
• Each request will contain only the parameters
requested in the current HTML form
• Developers did not consider a user who
submitted extra parameters
The Attack
• Supply valid data at earlier stage
• But then overwrite it with later requests
resetting the same value
• No validation was performed on the
unexpected parameters
• Allowed an XSS injection that revealed personal
information of other applicants
The Attack
• Purchase insurance at an arbitrary price
• Replace monthly premium at later stages
• Force approval
• Underwriter sets parameters in same web app
to indicate disapproval
• Attacker can set them, bypassing the actual
underwriter
Hack Steps
• Take parameters from one stage, and add them
to requests from another stage
• Take parameters used by one type of user and
try submitting them as another type of user
5. Breaking the Bank
• App lets existing bank customers register for
online banking
• Collects name, address and date of birth
• But no PIN or any other secret
• Forwards request to back-end system
• Mails an application pack to the customer
containing instructions, a phone number for
activation, and a one-time password
Assumption
• Designers regarded this process as safe, with three
layers of protection
• Some personal data required to start the process
to deter impostors
• Secret one-time password sent by mail; difficult
for attacker to steal
• Customer required to call in and authenticate with
personal information and selected digits from a
PIN
Data Structure
• Customer information stored in database as this
object
The Attack
• Same data object used for online banking and
registration
• Account details shown on main e-banking page
were generated from the customer number
• Main banking application required several levels
of authentication and access control to access
the data
Attack Steps
• 1. Log in with valid credentials
• 2. Using the authenticated session, go to
registration function and submit a different
customer's personal information
• The app overwrites the CCustomer object with
a new object relating to the targeted customer
• 3. Return to the main application functionality
and access the other customer's account
Fundamental Flaw
• Same database object can be written two ways
• 1. Main banking function allows writing after
strict authentication
• These designers think the user is known
• 2. Registration function allows writing without
authentication
• These users are unknown
6. Beating a Business Limit
• Financial personnel can transfer funds between
company bank accounts and customers and
suppliers
• Application prevents must users from
performing transfers over $10,000
• Larger transfers require a senior manager's
approval
The Code
• Any transaction that's too large requires
approval
The Attack
• Transfer a negative amount
• Such as -$100,000.00
• No approval required because it's below
$10,000.00
• Money flows in opposite direction
Numeric Limits
• Try negative values at each step
7. Cheating on Bulk
Discounts
• Users order software products
• Discount if a bundle of items purchased
together
• 25% discount for buying antivirus, firewall,
and antispam all together
Assumption
• Discount applied when items added to shopping
basket
• Developers assumed that shopper would buy
everything in the basket
The Attack
• Add every item possible to the basket
• Get discounted price
• Remove unwanted items from basket
• Discounted price persists
8. Escaping from Escaping
• Found in the web interface for a NIDS
• User-controlled input placed in an operating
system command
• Developers understood the code injection risk
• Added backslash to escape these characters:
• ; | & < > ' space newline
The Attack
• Developers forgot to escape the backslash itself
• Attacker enters
• foo;ls
• Application converts it to
• foo;ls
• Which allows the ; to get through unescaped
9. Invalidating Input
Validation
• Input validation system
• SQL injection filter changes all quotes to
double-quotes
• Will be interpreted as literal quotes, not
metacharacters
• Length limit truncates all input to 128 characters
Example
• This input
• Changes to this, which fails to bypass the login
The Attack
• Submit a username of 127 a's followed by a
single quotation mark, and password foo
• aaaaa[...]aaaaa'
• App adds another ', but the length limit removes
it
• This causes a SQL syntax error
• SELECT * FROM users WHERE username =
'aaaaa[..]aaaaa'' and password =
'foo'
The Attack
• Submit the same username, and a password of
• or 1=1--
• Query becomes this, bypassing the login
• SELECT * FROM users WHERE username =
'aaaaa[..]aaaaa'' and password = 'or
1=1--'
• '' is interpreted as a literal ', not a metacharacter
Detecting This Error
• Submit strings like this, look for SQL errors
• Vulnerabilities occur when input passes through
sequential validation steps
• One step can undo another step
10. Abusing a Search
Function
• Application provides access to a huge archive of
information
• Accessible only to paying subscribers
• Provided powerful search engine
• Anonymous user can perform a query to see what's
available
• But must pay to read the found articles
Assumption
• User cannot get useful information from the
search function before paying
• Document titles were typically cryptic, like
• "Annual Results 2010"
• "Press Release 08-03-2011"
• Etc.
The Attack
• Query searches full text of documents
• Guess at contents, and deduce them from the
number of found documents
• Like blind SQL injection
Real-World Application
• Authors have used this technique to brute-force
a password from a configuration file stored in a
wiki
• With these searches
11. Snarfing Debug
Messages
• App is new and buggy, so it puts out detailed
error messages containing:
Assumption
• There's no important information in the error
message
• Because the user can get all that data by
inspecting requests and responses from the
browser anyway
The Flaw
• Error message was not built from the browser's
information
• It came from a stored container on the server-
side
• Not session-based
• Error condition copies data to the container, and
then displays information copied from that
container
Race Condition
• If two users have errors at nearly the same time
• One user's data is copied to the container
• But then displayed to a different user
Exploitation
• This is even worse than the race condition
• Attacker polls error container URL repeatedly
• Log results each time they change, and get
12. Racing Against the
Login
• Robust, multistage login process
• Users required to supply several different
credentials
• Authentication mechanism had been subjected
to numerous design reviews and penetration
tests
• Owners had high confidence in it
The Bug
• Occasionally a customer logged in and gained
access to a different user's account
• This seemed random and non-repeatable
• Eventually the bank discovered that this
happened when two users logged in at precisely
the same time
• But not reliably
The Flaw
• Application stored a key identifier about each
newly authenticated user in a static,
nonsession, variable
• This variable's value was read back an instant
later
• If a different thread, processing another login,
wrote to that variable in between, the account
would change
Race Condition
• Application was using static storage to hold
information that should have been stored on a
per-thread or per-session basis
• This is called a "race condition"
• A brief moment of vulnerability
• To exploit it, attacker must "win the race"
Avoiding Logic Flaws
• Document every aspect of the application's
design thoroughly
• So an outsider can understand every
assumption the designer made
• Require clear comments in source code
documenting:
• The purpose and intended use of each
component
• Assumptions made by each component about
anything that is outside of its direct control
• References to all client code that uses the
component
Avoiding Logic Flaws
• During security review, reflect on every
assumption made in the design
• Imagine circumstanced that violate those
assumptions
• Focus on conditions that user can control
Avoiding Logic Flaws
• During security review, think laterally about:
• Ways the app handles unexpected user
behavior
• Potential side effects of any dependencies
and interoperation between code components
and application functions
Avoiding Logic Flaws

Contenu connexe

Tendances

CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site ScriptingCNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site ScriptingSam 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
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense MechanismsCh 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense MechanismsSam 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 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 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 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management Sam Bowne
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam 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: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationSam Bowne
 
case study on cyber crime
case study on cyber crimecase study on cyber crime
case study on cyber crimeParas Kansagara
 
Ch 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsCh 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsSam 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
 
Seminar-Two Factor Authentication
Seminar-Two Factor AuthenticationSeminar-Two Factor Authentication
Seminar-Two Factor AuthenticationDilip Kr. Jangir
 
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static TechniquesCNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static TechniquesSam Bowne
 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Ajay Negi
 

Tendances (20)

CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site ScriptingCNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
 
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)
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense MechanismsCh 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
 
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 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 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 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
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: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
 
case study on cyber crime
case study on cyber crimecase study on cyber crime
case study on cyber crime
 
Ch 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side ControlsCh 5: Bypassing Client-Side Controls
Ch 5: Bypassing Client-Side Controls
 
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
 
Presentation on Web Attacks
Presentation on Web AttacksPresentation on Web Attacks
Presentation on Web Attacks
 
Phishing
PhishingPhishing
Phishing
 
Seminar-Two Factor Authentication
Seminar-Two Factor AuthenticationSeminar-Two Factor Authentication
Seminar-Two Factor Authentication
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static TechniquesCNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)
 

En vedette

CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologySam Bowne
 
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 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: 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 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: 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 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsSam 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: 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 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1Sam Bowne
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidSam Bowne
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesSam Bowne
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?Sam 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
 
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 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSSam 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
 

En vedette (20)

CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis Methodology
 
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 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: 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 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
 
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 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side Controls
 
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: 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 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilities
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?
 
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
 
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 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOS
 
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
 

Similaire à CNIT 129S: 11: Attacking Application Logic

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
 
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
 
Creating a Sign On with Open id connect
Creating a Sign On with Open id connectCreating a Sign On with Open id connect
Creating a Sign On with Open id connectDerek Binkley
 
Owasp security testing methodlogies –part2
Owasp security testing methodlogies –part2Owasp security testing methodlogies –part2
Owasp security testing methodlogies –part2robin_bene
 
Broken Authentication & authorization
Broken Authentication & authorizationBroken Authentication & authorization
Broken Authentication & authorizationSarwar Jahan M
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationSam Bowne
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthKashif Imran
 
CNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementCNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementSam Bowne
 
Netmera_Presentation.pdf
Netmera_Presentation.pdfNetmera_Presentation.pdf
Netmera_Presentation.pdfMustafa Kuğu
 
Ch 7: Attacking Session Management
Ch 7: Attacking Session ManagementCh 7: Attacking Session Management
Ch 7: Attacking Session ManagementSam Bowne
 
21551F0033 Hari.pptx
21551F0033 Hari.pptx21551F0033 Hari.pptx
21551F0033 Hari.pptxCHANDUK45
 
Secure Coding BSSN Semarang Material.pdf
Secure Coding BSSN Semarang Material.pdfSecure Coding BSSN Semarang Material.pdf
Secure Coding BSSN Semarang Material.pdfnanangAris1
 
2FA Protocol Presentation
2FA Protocol Presentation2FA Protocol Presentation
2FA Protocol PresentationAkhil Agrawal
 
OWASP TOP 10 by Team xbios
OWASP TOP 10  by Team xbiosOWASP TOP 10  by Team xbios
OWASP TOP 10 by Team xbiosVi Vek
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking AuthenticationSam Bowne
 
Introduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CIntroduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CJoonas Westlin
 

Similaire à CNIT 129S: 11: Attacking Application Logic (20)

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
 
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)
 
Creating a Sign On with Open id connect
Creating a Sign On with Open id connectCreating a Sign On with Open id connect
Creating a Sign On with Open id connect
 
Owasp security testing methodlogies –part2
Owasp security testing methodlogies –part2Owasp security testing methodlogies –part2
Owasp security testing methodlogies –part2
 
Broken Authentication & authorization
Broken Authentication & authorizationBroken Authentication & authorization
Broken Authentication & authorization
 
CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking Authentication
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 
CNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementCNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session Management
 
Netmera_Presentation.pdf
Netmera_Presentation.pdfNetmera_Presentation.pdf
Netmera_Presentation.pdf
 
Vulnerabilities in Web Applications
Vulnerabilities in Web ApplicationsVulnerabilities in Web Applications
Vulnerabilities in Web Applications
 
Ch 7: Attacking Session Management
Ch 7: Attacking Session ManagementCh 7: Attacking Session Management
Ch 7: Attacking Session Management
 
21551F0033 Hari.pptx
21551F0033 Hari.pptx21551F0033 Hari.pptx
21551F0033 Hari.pptx
 
Secure Coding BSSN Semarang Material.pdf
Secure Coding BSSN Semarang Material.pdfSecure Coding BSSN Semarang Material.pdf
Secure Coding BSSN Semarang Material.pdf
 
2FA Protocol Presentation
2FA Protocol Presentation2FA Protocol Presentation
2FA Protocol Presentation
 
OWASP TOP 10 by Team xbios
OWASP TOP 10  by Team xbiosOWASP TOP 10  by Team xbios
OWASP TOP 10 by Team xbios
 
SCWCD : Secure web
SCWCD : Secure webSCWCD : Secure web
SCWCD : Secure web
 
SCWCD : Secure web : CHAP : 7
SCWCD : Secure web : CHAP : 7SCWCD : Secure web : CHAP : 7
SCWCD : Secure web : CHAP : 7
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking Authentication
 
AusCERT 2018
AusCERT 2018AusCERT 2018
AusCERT 2018
 
Introduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CIntroduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2C
 

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

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxPooja Bhuva
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 

Dernier (20)

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 

CNIT 129S: 11: Attacking Application Logic

  • 1. CNIT 129S: Securing Web Applications Ch 11: Attacking Application Logic
  • 2. Logic Flaws • No common signature, such as found in SQL injection • Often an assumption a developer made • Difficult to find and eliminate
  • 4. 1. Asking the Oracle • "Remember me" function sets a permanent cookie • Containing an encrypted string that contains • Name, User ID, and volatile data to make it unique and unpredictable, including machine IP address • Screen name also saved in encrypted form as ScreenName
  • 5. Assumption • It's OK to use same encryption algorithm to encrypt both cookies • But user can control ScreenName • And the app decrypts that cookie, showing the result on the screen
  • 6. The Attack • Copy the RememberMe cookie into the ScreenName cookie • The app decrypts it and shows the result • Now change screen name to
  • 7. The Attack • Log out, log back in, and copy the new ScreenName cookie to the RememberMe cookie • Attacker is now admin! • Encryption was 3DES and unbreakable, but it didn't matter
  • 8. Hack Steps • Look for items that are encrypted, not hashed • With data from the user • Substitute other encrypted values • Try to cause an error that reveals the decrypted value
  • 9. 2. Fooling a Password Change Function • Form for password change asks for • Username • Existing password • New password • Confirm new password
  • 10. 2. Fooling a Password Change Function • Administrators have a form that can change any password, implemented by the same server-side script • Administrator's form doesn't ask for existing password
  • 11. The Assumption • When a request comes in without an existing password, that indicates that it came from an administrator
  • 12. The Attack • Submit a password change without any existing password • Reset anyone's password • This really happened in the AOL AIM Enterprise Gateway application
  • 13. Hack Steps • Try deleting each parameter, one by one • Delete the name as well as the value • Try it at each step of the process
  • 14. 3. Proceeding to Checkout • Assumption • Users will perform steps in sequence • A user on the last step must have entered payment details
  • 15. The Attack • "Forced Browsing" • Circumvent controls that make the steps occur in sequence • Proceed directly from step 2 to step 4 • Get product without paying for it
  • 16. Hack Steps • Try skipping stages, doing a single stage more than once, and doing earlier stages after later ones • Stages may use different URLs or parameter values • Guess assumptions and violate them • Watch for interesting error messages
  • 17. 4. Rolling Your Own Insurance • App lets users obtain quotes for insurance, and, if desired, submit an insurance application online • It used a dozen stages • 1. Applicant submits basic information, and either preferred monthly premium or amount of desired insurance payout • App computes values the applicant did not specify
  • 18. 4. Rolling Your Own Insurance • 2. Across several stages, applicant supplies other personal details: health, occupation, pastimes, etc. • 3. Finally application is sent to an underwriter • Underwriter uses the same web app to review the details and decide whether to approve the application, or modify the initial quote to reflect additional risks
  • 19. 4. Rolling Your Own Insurance • Each stage uses a shared component to process each parameter of user data • Component parsed all data in each POST request into name/value pairs and updated state information
  • 20. Assumption • Each request will contain only the parameters requested in the current HTML form • Developers did not consider a user who submitted extra parameters
  • 21. The Attack • Supply valid data at earlier stage • But then overwrite it with later requests resetting the same value • No validation was performed on the unexpected parameters • Allowed an XSS injection that revealed personal information of other applicants
  • 22. The Attack • Purchase insurance at an arbitrary price • Replace monthly premium at later stages • Force approval • Underwriter sets parameters in same web app to indicate disapproval • Attacker can set them, bypassing the actual underwriter
  • 23. Hack Steps • Take parameters from one stage, and add them to requests from another stage • Take parameters used by one type of user and try submitting them as another type of user
  • 24. 5. Breaking the Bank • App lets existing bank customers register for online banking • Collects name, address and date of birth • But no PIN or any other secret • Forwards request to back-end system • Mails an application pack to the customer containing instructions, a phone number for activation, and a one-time password
  • 25. Assumption • Designers regarded this process as safe, with three layers of protection • Some personal data required to start the process to deter impostors • Secret one-time password sent by mail; difficult for attacker to steal • Customer required to call in and authenticate with personal information and selected digits from a PIN
  • 26. Data Structure • Customer information stored in database as this object
  • 27. The Attack • Same data object used for online banking and registration • Account details shown on main e-banking page were generated from the customer number • Main banking application required several levels of authentication and access control to access the data
  • 28. Attack Steps • 1. Log in with valid credentials • 2. Using the authenticated session, go to registration function and submit a different customer's personal information • The app overwrites the CCustomer object with a new object relating to the targeted customer • 3. Return to the main application functionality and access the other customer's account
  • 29. Fundamental Flaw • Same database object can be written two ways • 1. Main banking function allows writing after strict authentication • These designers think the user is known • 2. Registration function allows writing without authentication • These users are unknown
  • 30. 6. Beating a Business Limit • Financial personnel can transfer funds between company bank accounts and customers and suppliers • Application prevents must users from performing transfers over $10,000 • Larger transfers require a senior manager's approval
  • 31. The Code • Any transaction that's too large requires approval
  • 32. The Attack • Transfer a negative amount • Such as -$100,000.00 • No approval required because it's below $10,000.00 • Money flows in opposite direction
  • 33. Numeric Limits • Try negative values at each step
  • 34. 7. Cheating on Bulk Discounts • Users order software products • Discount if a bundle of items purchased together • 25% discount for buying antivirus, firewall, and antispam all together
  • 35. Assumption • Discount applied when items added to shopping basket • Developers assumed that shopper would buy everything in the basket
  • 36. The Attack • Add every item possible to the basket • Get discounted price • Remove unwanted items from basket • Discounted price persists
  • 37. 8. Escaping from Escaping • Found in the web interface for a NIDS • User-controlled input placed in an operating system command • Developers understood the code injection risk • Added backslash to escape these characters: • ; | & < > ' space newline
  • 38. The Attack • Developers forgot to escape the backslash itself • Attacker enters • foo;ls • Application converts it to • foo;ls • Which allows the ; to get through unescaped
  • 39. 9. Invalidating Input Validation • Input validation system • SQL injection filter changes all quotes to double-quotes • Will be interpreted as literal quotes, not metacharacters • Length limit truncates all input to 128 characters
  • 40. Example • This input • Changes to this, which fails to bypass the login
  • 41. The Attack • Submit a username of 127 a's followed by a single quotation mark, and password foo • aaaaa[...]aaaaa' • App adds another ', but the length limit removes it • This causes a SQL syntax error • SELECT * FROM users WHERE username = 'aaaaa[..]aaaaa'' and password = 'foo'
  • 42. The Attack • Submit the same username, and a password of • or 1=1-- • Query becomes this, bypassing the login • SELECT * FROM users WHERE username = 'aaaaa[..]aaaaa'' and password = 'or 1=1--' • '' is interpreted as a literal ', not a metacharacter
  • 43. Detecting This Error • Submit strings like this, look for SQL errors • Vulnerabilities occur when input passes through sequential validation steps • One step can undo another step
  • 44. 10. Abusing a Search Function • Application provides access to a huge archive of information • Accessible only to paying subscribers • Provided powerful search engine • Anonymous user can perform a query to see what's available • But must pay to read the found articles
  • 45. Assumption • User cannot get useful information from the search function before paying • Document titles were typically cryptic, like • "Annual Results 2010" • "Press Release 08-03-2011" • Etc.
  • 46. The Attack • Query searches full text of documents • Guess at contents, and deduce them from the number of found documents • Like blind SQL injection
  • 47.
  • 48. Real-World Application • Authors have used this technique to brute-force a password from a configuration file stored in a wiki • With these searches
  • 49. 11. Snarfing Debug Messages • App is new and buggy, so it puts out detailed error messages containing:
  • 50. Assumption • There's no important information in the error message • Because the user can get all that data by inspecting requests and responses from the browser anyway
  • 51. The Flaw • Error message was not built from the browser's information • It came from a stored container on the server- side • Not session-based • Error condition copies data to the container, and then displays information copied from that container
  • 52. Race Condition • If two users have errors at nearly the same time • One user's data is copied to the container • But then displayed to a different user
  • 53. Exploitation • This is even worse than the race condition • Attacker polls error container URL repeatedly • Log results each time they change, and get
  • 54. 12. Racing Against the Login • Robust, multistage login process • Users required to supply several different credentials • Authentication mechanism had been subjected to numerous design reviews and penetration tests • Owners had high confidence in it
  • 55. The Bug • Occasionally a customer logged in and gained access to a different user's account • This seemed random and non-repeatable • Eventually the bank discovered that this happened when two users logged in at precisely the same time • But not reliably
  • 56. The Flaw • Application stored a key identifier about each newly authenticated user in a static, nonsession, variable • This variable's value was read back an instant later • If a different thread, processing another login, wrote to that variable in between, the account would change
  • 57. Race Condition • Application was using static storage to hold information that should have been stored on a per-thread or per-session basis • This is called a "race condition" • A brief moment of vulnerability • To exploit it, attacker must "win the race"
  • 58. Avoiding Logic Flaws • Document every aspect of the application's design thoroughly • So an outsider can understand every assumption the designer made
  • 59. • Require clear comments in source code documenting: • The purpose and intended use of each component • Assumptions made by each component about anything that is outside of its direct control • References to all client code that uses the component Avoiding Logic Flaws
  • 60. • During security review, reflect on every assumption made in the design • Imagine circumstanced that violate those assumptions • Focus on conditions that user can control Avoiding Logic Flaws
  • 61. • During security review, think laterally about: • Ways the app handles unexpected user behavior • Potential side effects of any dependencies and interoperation between code components and application functions Avoiding Logic Flaws