SlideShare a Scribd company logo
Automated Testing for SQL Injection 
Vulnerabilities: An Input Mutation 
Approach 
Dennis Appelt, Cu D. Nguyen, Nadia Alshahwan, Lionel Briand 
Software Verification and Validation Laboratory 
Interdisciplinary Centre for Security, Reliability and Trust 
University of Luxembourg 
25, July, 2014
Web 
Apps 
are 
at 
risk 
OWASP 
Top 
10 
2013 
2 
A1 
– 
Injec;on 
A2 
– 
Broken 
Authen;ca;on 
and 
Session 
Management 
A3 
– 
Cross-­‐Site 
Scrip;ng 
A4 
– 
Insecure 
Object 
References 
…
SQL 
Injec;on 
Incidents 
3
4
Background
Defini;on 
6 
SQL 
Injec;on 
aNacks 
target 
database-­‐driven 
systems 
by 
injec;ng 
SQL 
code 
fragments 
into 
vulnerable 
input 
parameters 
that 
are 
not 
properly 
checked 
and 
sani;sed.
Example 
Example 
code 
vulnerable 
to 
SQL 
injec;on: 
1 . $sql = "Select * From hotelList where country =’";! 
2 . $sql = $sql . $country;! 
3 . $sql = $sql . ’"’;! 
3 . $result = mysql_query($sql) or die(mysql_error());! 
Parameter 
assignment: 
$country ß Luxembourg 
Resul;ng 
statement: 
1. SELECT * FROM hotelList WHERE country=’Luxembourg’! 
7
Example 
Example 
code 
vulnerable 
to 
SQL 
injec;on: 
1 . $sql = "Select * From hotelList where country =’";! 
2 . $sql = $sql . $country;! 
3 . $sql = $sql . ’"’;! 
3 . $result = mysql_query($sql) or die(mysql_error());! 
Parameter 
assignment: 
$country ß ‘ or 1=1 -- 
Resul;ng 
statement: 
1. SELECT * FROM hotelList WHERE country=’’ OR 1=1 --’! 
8
Automated 
Tes;ng 
for 
SQL 
Injec;on 
Vulnerabili;es 
An 
Input 
Muta;on 
Approach 
9
10 
Black-­‐Box
11 
Focus 
on 
Exploitable 
Vulnerabili;es
12 
Automated 
Test 
Execu;on
13 
Input-­‐Muta;on
Approach
Approach 
-­‐ 
Overview 
15 
WAF SUT 
Monitor 
Data 
base 
Test 
generator 
XAVIER 
DB 
WSDL Proxy 
Input 
samples 
test reports
Approach 
– 
Test 
Genera;on 
16 
WAF SUT 
Monitor 
Data 
base 
Test 
generator 
XAVIER 
DB 
WSDL Proxy 
Input 
samples 
test reports 
We 
want 
to 
generated 
test 
cases 
that 
• result 
in 
executable 
SQL 
statements 
• bypass 
the 
web 
applica;on 
firewall
Approach 
– 
Test 
Genera;on 
• μ4SQLi 
– Muta;on 
approach: 
manipulate 
legal 
test 
cases 
to 
become 
SQLi 
aNacks 
17
Approach 
– 
Test 
Genera;on 
• μ4SQLi 
– Muta;on 
approach: 
manipulate 
legal 
test 
cases 
to 
become 
SQLi 
aNacks 
– 12 
muta;on 
operators 
grouped 
in 
3 
categories 
• Behavior-­‐changing 
• Syntax-­‐repairing 
• Obfusca;on 
18
Approach 
– 
Test 
Genera;on 
• μ4SQLi 
– Muta;on 
approach: 
manipulate 
legal 
test 
cases 
to 
become 
SQLi 
aNacks 
– 12 
muta;on 
operators 
grouped 
in 
3 
categories 
• Behavior-­‐changing 
• Syntax-­‐repairing 
• Obfusca;on 
– A 
large 
number 
of 
test 
cases 
can 
be 
generated 
19
Behavior-­‐changing 
MO 
Example 
of 
a 
behavior-­‐changing 
muta;on 
operator 
Valid 
Input 
John 
Doe 
Apply 
MO_or 
Malicious 
Input 
John 
Doe’ 
OR 
‘a’=‘a 
SELECT 
* 
FROM 
users 
WHERE 
name=‘John 
Doe’ 
OR 
‘a’=‘a’ 
Execute 
SUT 
Behavior-­‐changing 
20
Syntax-­‐repairing 
MO 
Example 
of 
a 
syntax-­‐repairing 
muta;on 
operator 
Malicious 
Input 
John 
Doe’ 
OR 
‘a’=‘a 
SELECT 
* 
FROM 
users 
WHERE 
func(‘$userinput’) 
SELECT 
* 
FROM 
users 
WHERE 
func(‘John 
Doe’ 
OR 
‘a’=‘a’) 
Execute 
SUT 
Behavior-­‐changing 
è Incorrect SQL syntax, 
will not execute 
Statement without user input: 
21
Syntax-­‐repairing 
MO 
Example 
of 
a 
syntax-­‐repairing 
muta;on 
operator 
SELECT 
* 
FROM 
users 
WHERE 
func(‘$userinput’) 
Statement without user input: 
Malicious 
Input 
John 
Doe’) 
OR 
‘a’=‘a’ 
# 
SELECT 
* 
FROM 
users 
WHERE 
func(‘John 
Doe’) 
OR 
‘a’=‘a’ 
#’) 
Execute 
SUT 
Syntax-­‐repairing 
22
Obfusca;on 
MO 
Example 
of 
an 
obfusca;on 
muta;on 
operator 
Malicious 
Input 
John 
Doe’/*/OR+‘a’=x’61 
SELECT 
* 
FROM 
users 
WHERE 
name=‘John 
Doe’/*/OR+‘a’=x’61’ 
Execute 
SUT 
Obfusca;on 
23
Approach 
– 
Test 
Oracle 
24 
WAF SUT 
Monitor 
Data 
base 
Test 
generator 
XAVIER 
DB 
WSDL Proxy 
Input 
samples 
test reports 
Monitor: 
-­‐ Observes 
the 
traffic 
between 
SUT 
and 
database 
-­‐ Detects 
if 
a 
test 
case 
triggered 
an 
SQLi 
vulnerability
Approach 
– 
Test 
Oracle 
• Inspects 
if 
a 
SQL 
statement 
which 
has 
been 
injected 
into 
is 
executable. 
25 
$country ß ‘) OR 1=1 -- 
SELECT * FROM hotelList WHERE country=’’) OR 1=1 --’!
Approach 
– 
Test 
Oracle 
• Inspects 
if 
a 
SQL 
statement 
which 
has 
been 
injected 
into 
is 
executable. 
$country ß ‘) OR 1=1 -- 
èANack 
is 
not 
executed 
26 
SELECT * FROM hotelList WHERE country=’’) OR 1=1 --’! 
Syntax 
Error: 
Missing 
Opening 
Parenthesis
Evalua;on
Subjects 
28 
Applica,on 
# 
Opera,ons 
# 
Parameters 
KLoC 
Hotel 
Reserva;on 
Service 
7 
21 
1.5 
SugarCRM 
26 
87 
352 
Total 
33 
108 
353.5 
Each 
subject 
is 
tested 
with 
and 
without 
firewall 
à 
4 
dis;nct 
experiment 
setups
Baseline 
– 
Standard 
ANacks 
• Consists 
of 
standard 
aNacks 
– List 
of 
137 
SQLi 
aNacks 
– Diverse 
set 
of 
known 
paNerns 
• State-­‐of-­‐the-­‐art 
tools 
use 
such 
aNacks 
– E.g. 
BurpSuite, 
SoapUI 
29
Research 
Ques;ons 
RQ1: 
Are 
standard 
a*acks 
and 
mutated 
a*acks 
(generated 
by 
μ4SQLi) 
likely 
to 
reveal 
exploitable 
SQLi 
vulnerabili?es? 
RQ2: 
With 
and 
without 
the 
presence 
of 
the 
WAF, 
which 
input 
genera?on 
technique 
performs 
be*er? 
30
Variables 
31 
T 
– 
total 
number 
of 
test 
cases 
that 
generate 
SQL 
statements 
that 
get 
flagged 
by 
the 
monitor 
Te 
– 
as 
T 
but 
in 
addi;on 
flagged 
SQL 
statements 
must 
be 
executable
Variables 
32 
T 
– 
total 
number 
of 
test 
cases 
that 
generate 
SQL 
statements 
that 
get 
flagged 
by 
the 
monitor 
Te 
– 
as 
T 
but 
in 
addi;on 
flagged 
SQL 
statements 
must 
be 
executable 
SUT 
DB 
ti 
s1 
s2 
… 
sn
Variables 
33 
T 
– 
total 
number 
of 
test 
cases 
that 
generate 
SQL 
statements 
that 
get 
flagged 
by 
the 
monitor 
Te 
– 
as 
T 
but 
in 
addi;on 
flagged 
SQL 
statements 
must 
be 
executable 
SUT 
DB 
ti 
s1 
s2 
… 
sn 
If 
at 
least 
one 
statement 
is 
flagged, 
ti 
reveals 
a 
vulnerabilityà 
increment 
T 
If 
the 
flagged 
statement 
is 
executable 
à 
increment 
Te
34 
Results 
Standard 
ANacks 
μ4SQLi
Research 
Ques;on 
1 
Are 
standard 
a*acks 
and 
mutated 
a*acks 
(generated 
by 
μ4SQLi) 
likely 
to 
reveal 
exploitable 
SQLi 
vulnerabili?es? 
35
Research 
Ques;on 
1 
Are 
standard 
a*acks 
and 
mutated 
a*acks 
(generated 
by 
μ4SQLi) 
likely 
to 
reveal 
exploitable 
SQLi 
vulnerabili?es? 
36 
Answer 
Both 
techniques 
can 
reveal 
SQLi 
vulnerabili?es 
when 
no 
firewall 
was 
used. 
Most 
vulnerabili?es 
are 
highly 
likely 
to 
be 
detected 
with 
at 
most 
a 
few 
dozen 
test 
cases 
or 
less.
Research 
Ques;on 
2 
37 
With 
and 
without 
the 
presence 
of 
the 
WAF, 
which 
input 
genera?on 
technique 
performs 
be*er?
Research 
Ques;on 
2 
38 
With 
and 
without 
the 
presence 
of 
the 
WAF, 
which 
input 
genera?on 
technique 
performs 
be*er? 
Answer 
μ4SQLi 
generates 
a 
higher 
percentage 
of 
tests 
that 
can 
reveal 
SQLi 
vulnerabili?es. 
Further, 
in 
the 
presence 
of 
a 
WAF, 
μ4SQLi 
is 
also 
capable 
of 
doing 
so.
Summary
WAF SUT 
Monitor 
Data 
base 
Test 
generator 
XAVIER 
DB 
WSDL Proxy 
Input 
samples 
test reports
WAF SUT 
Monitor 
Data 
base 
Test 
generator 
XAVIER 
DB 
WSDL Proxy 
Input 
samples 
test reports
Backup 
Slides
Operator 
Name 
Descrip,on 
Behavior-­‐Changing 
Operators 
MO_or 
Adds 
an 
OR-­‐clause 
to 
the 
input 
MO_and 
Adds 
an 
AND-­‐clause 
to 
the 
input 
MO_semi 
Adds 
semicolon 
followed 
by 
an 
addi;onal 
SQL 
statement 
Syntax-­‐Repairing 
Operators 
MO_par 
Appends 
a 
parenthesis 
to 
a 
valid 
input 
MO_cmt 
Adds 
a 
comment 
command 
(-­‐-­‐ 
or 
#) 
to 
an 
input 
MO_qot 
Adds 
a 
single 
or 
double 
quote 
to 
an 
input 
Obfusca,on 
Operators 
MO_wsp 
Changes 
the 
encoding 
of 
whitespaces 
MO_chr 
Changes 
the 
encoding 
of 
a 
character 
literal 
MO_html 
Changes 
the 
encoding 
of 
an 
input 
to 
HTML 
en;ty 
encoding 
MO_per 
Changes 
the 
encoding 
of 
an 
input 
to 
percentage 
encoding 
MO_bool 
Rewrites 
a 
boolean 
expression 
while 
preserving 
it’s 
truth 
value 
MO_keyw 
Changes 
capitaliza;on 
and 
inserts 
comments 
into 
SQL 
keywords 
45
Approach 
– 
Test 
Genera;on 
Valid 
Test 
Case 
req_hotelServer_getRoomsByRate.xml 
1 <soapenv:Envelope> 
2 <soapenv:Header/> 
3 <soapenv:Body> 
4 <urn:getRoomsByRate> 
5 <minPrice xsi:type="xsd:float">100</minPrice> 
6 <maxPrice xsi:type="xsd:float">400</maxPrice> 
7 <country xsi:type="xsd:string">France</country> 
8 <start xsi:type="xsd:integer">1</start> 
9 </urn:getRoomsByRate> 
10 </soapenv:Body> 
11 </soapenv:Envelope> 
12 
<soapenv:Envelope> 
<soapenv:Header/> 
<soapenv:Body> 
<urn:getRoomsByRate> 
<minPrice xsi:type="xsd:float">100</minPrice> 
<maxPrice xsi:type="xsd:float">400</maxPrice> 
<country xsi:type="xsd:string">"||not 0--</country> 
<start xsi:type="xsd:integer">1</start> 
</urn:getRoomsByRate> 
</soapenv:Body> 
</soapenv:Envelope> 
μ4SQLi 
SQLi 
Test 
Case 
46
47 
Results 
Standard 
ANacks 
μ4SQLi
48 
Results 
Standard 
ANacks 
μ4SQLi
49 
Results 
Standard 
ANacks 
μ4SQLi
Results 
without 
WAF 
Subject 
Parameter 
Standard 
AMacks 
μ4SQLi 
%T 
%Te 
%T 
%Te 
HotelRS 
country 
12.41 
5.84 
40.62 
21.80 
arrDate 
35.04 
9.49 
42.05 
12.50 
depDate 
35.04 
9.49 
42.96 
12.03 
name 
35.04 
9.49 
43.36 
12.91 
address 
35.04 
9.49 
39.81 
11.00 
email 
35.04 
9.49 
41.73 
11.23 
SugarCRM 
value 
37.23 
0 
41.48 
22.51 
ass_user_id 
32.85 
8.03 
42.49 
13.91 
query1 
32.85 
3.65 
9.82 
0.30 
query2 
54.74 
5.84 
81.72 
33.45 
order_by 
59.85 
10.95 
85.98 
33.55 
rel_mod_qry 
47.45 
2.92 
49.79 
0
Results 
with 
WAF 
Subject 
Parameter 
Standard 
AMacks 
μ4SQLi 
%T 
%Te 
%T 
%Te 
HotelRS 
country 
0.73 
0 
36.84 
20.69 
arrDate 
2.19 
0 
42.05 
12.50 
depDate 
5.84 
0 
42.96 
12.03 
name 
6.57 
0 
43.36 
12.91 
address 
7.30 
0 
39.81 
11.00 
email 
6.57 
0 
41.73 
11.23 
SugarCRM 
value 
2.19 
0 
37.42 
20.48 
ass_user_id 
5.11 
0 
29.35 
6.89 
query1 
0.73 
0 
8.97 
0.20 
query2 
3.65 
0 
76.56 
31.43 
order_by 
7.30 
0 
80.08 
31.96 
rel_mod_qry 
6.57 
0 
44.82 
0

More Related Content

What's hot

Long-Awaited Check of CryEngine V
Long-Awaited Check of CryEngine VLong-Awaited Check of CryEngine V
Long-Awaited Check of CryEngine V
PVS-Studio
 
Do WAFs dream of static analyzers
Do WAFs dream of static analyzersDo WAFs dream of static analyzers
Do WAFs dream of static analyzers
Vladimir Kochetkov
 
Mining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution LogsMining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution Logs
Dirk Fahland
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Pavneet Singh Kochhar
 
Can secwest2011 flash_actionscript
Can secwest2011 flash_actionscriptCan secwest2011 flash_actionscript
Can secwest2011 flash_actionscript
Craft Symbol
 
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
Andrey Karpov
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
Sung Kim
 
(automatic) Testing: from business to university and back
(automatic) Testing: from business to university and back(automatic) Testing: from business to university and back
(automatic) Testing: from business to university and back
David Rodenas
 
PVS-Studio features overview (2020)
PVS-Studio features overview (2020)PVS-Studio features overview (2020)
PVS-Studio features overview (2020)
Andrey Karpov
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Sung Kim
 
Anti Debugging
Anti DebuggingAnti Debugging
Testing: ¿what, how, why?
Testing: ¿what, how, why?Testing: ¿what, how, why?
Testing: ¿what, how, why?
David Rodenas
 
Not your father's tests
Not your father's testsNot your father's tests
Not your father's tests
Sean P. Floyd
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
Sung Kim
 
Static analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systemsStatic analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systems
Andrey Karpov
 
Anti-Debugging - A Developers View
Anti-Debugging - A Developers ViewAnti-Debugging - A Developers View
Anti-Debugging - A Developers ViewTyler Shields
 
Vhdl lab manual
Vhdl lab manualVhdl lab manual
Vhdl lab manual
Mukul Mohal
 
The Little Unicorn That Could
The Little Unicorn That CouldThe Little Unicorn That Could
The Little Unicorn That Could
PVS-Studio
 
Vlsi lab manual exp:2
Vlsi lab manual exp:2Vlsi lab manual exp:2
Vlsi lab manual exp:2komala vani
 

What's hot (20)

Long-Awaited Check of CryEngine V
Long-Awaited Check of CryEngine VLong-Awaited Check of CryEngine V
Long-Awaited Check of CryEngine V
 
Do WAFs dream of static analyzers
Do WAFs dream of static analyzersDo WAFs dream of static analyzers
Do WAFs dream of static analyzers
 
Mining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution LogsMining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution Logs
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
 
Can secwest2011 flash_actionscript
Can secwest2011 flash_actionscriptCan secwest2011 flash_actionscript
Can secwest2011 flash_actionscript
 
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
 
Pragmatic Code Coverage
Pragmatic Code CoveragePragmatic Code Coverage
Pragmatic Code Coverage
 
(automatic) Testing: from business to university and back
(automatic) Testing: from business to university and back(automatic) Testing: from business to university and back
(automatic) Testing: from business to university and back
 
PVS-Studio features overview (2020)
PVS-Studio features overview (2020)PVS-Studio features overview (2020)
PVS-Studio features overview (2020)
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
 
Anti Debugging
Anti DebuggingAnti Debugging
Anti Debugging
 
Testing: ¿what, how, why?
Testing: ¿what, how, why?Testing: ¿what, how, why?
Testing: ¿what, how, why?
 
Not your father's tests
Not your father's testsNot your father's tests
Not your father's tests
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
 
Static analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systemsStatic analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systems
 
Anti-Debugging - A Developers View
Anti-Debugging - A Developers ViewAnti-Debugging - A Developers View
Anti-Debugging - A Developers View
 
Vhdl lab manual
Vhdl lab manualVhdl lab manual
Vhdl lab manual
 
The Little Unicorn That Could
The Little Unicorn That CouldThe Little Unicorn That Could
The Little Unicorn That Could
 
Vlsi lab manual exp:2
Vlsi lab manual exp:2Vlsi lab manual exp:2
Vlsi lab manual exp:2
 

Similar to Automated Testing for SQL Injection Vulnerabilities: An Input Mutation Approach

Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine Learning
Lionel Briand
 
OWASP_Top_Ten_Proactive_Controls_v32.pptx
OWASP_Top_Ten_Proactive_Controls_v32.pptxOWASP_Top_Ten_Proactive_Controls_v32.pptx
OWASP_Top_Ten_Proactive_Controls_v32.pptx
nmk42194
 
Declarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data modelsDeclarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data models
Monal Daxini
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
cgt38842
 
Quantstamp Report - LINKSWAP
Quantstamp Report - LINKSWAPQuantstamp Report - LINKSWAP
Quantstamp Report - LINKSWAP
Roy Blackstone
 
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis ViolationsAVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
Dongsun Kim
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
azida3
 
OWASP_Top_Ten_Proactive_Controls version 2
OWASP_Top_Ten_Proactive_Controls version 2OWASP_Top_Ten_Proactive_Controls version 2
OWASP_Top_Ten_Proactive_Controls version 2
ssuser18349f1
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
johnpragasam1
 
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
ERPScan
 
Web Security: SQL Injection
Web Security: SQL InjectionWeb Security: SQL Injection
Web Security: SQL Injection
Vortana Say
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Mutant Tests Too: The SQL
Mutant Tests Too: The SQLMutant Tests Too: The SQL
Mutant Tests Too: The SQL
DataWorks Summit
 
audit_blog.ppt
audit_blog.pptaudit_blog.ppt
audit_blog.ppt
ssuserb9407e
 
Web Application Firewall - Friend of your DevOps Pipeline?
Web Application Firewall - Friend of your DevOps Pipeline?Web Application Firewall - Friend of your DevOps Pipeline?
Web Application Firewall - Friend of your DevOps Pipeline?
Franziska Buehler
 
Practical Approach towards SQLi ppt
Practical Approach towards SQLi pptPractical Approach towards SQLi ppt
Practical Approach towards SQLi ppt
Ahamed Saleem
 
RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...
Nandana Mihindukulasooriya
 
Robustness testing
Robustness testingRobustness testing
Robustness testing
CS, NcState
 
DEFCON 23 - Lance buttars Nemus - sql injection on lamp
DEFCON 23 - Lance buttars Nemus - sql injection on lampDEFCON 23 - Lance buttars Nemus - sql injection on lamp
DEFCON 23 - Lance buttars Nemus - sql injection on lamp
Felipe Prado
 

Similar to Automated Testing for SQL Injection Vulnerabilities: An Input Mutation Approach (20)

Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine Learning
 
OWASP_Top_Ten_Proactive_Controls_v32.pptx
OWASP_Top_Ten_Proactive_Controls_v32.pptxOWASP_Top_Ten_Proactive_Controls_v32.pptx
OWASP_Top_Ten_Proactive_Controls_v32.pptx
 
Declarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data modelsDeclarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data models
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
 
Quantstamp Report - LINKSWAP
Quantstamp Report - LINKSWAPQuantstamp Report - LINKSWAP
Quantstamp Report - LINKSWAP
 
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis ViolationsAVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
 
OWASP_Top_Ten_Proactive_Controls version 2
OWASP_Top_Ten_Proactive_Controls version 2OWASP_Top_Ten_Proactive_Controls version 2
OWASP_Top_Ten_Proactive_Controls version 2
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
 
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
SSRF vs. Business-critical applications. Part 2. New vectors and connect-back...
 
Web Security: SQL Injection
Web Security: SQL InjectionWeb Security: SQL Injection
Web Security: SQL Injection
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Ch14
Ch14Ch14
Ch14
 
Mutant Tests Too: The SQL
Mutant Tests Too: The SQLMutant Tests Too: The SQL
Mutant Tests Too: The SQL
 
audit_blog.ppt
audit_blog.pptaudit_blog.ppt
audit_blog.ppt
 
Web Application Firewall - Friend of your DevOps Pipeline?
Web Application Firewall - Friend of your DevOps Pipeline?Web Application Firewall - Friend of your DevOps Pipeline?
Web Application Firewall - Friend of your DevOps Pipeline?
 
Practical Approach towards SQLi ppt
Practical Approach towards SQLi pptPractical Approach towards SQLi ppt
Practical Approach towards SQLi ppt
 
RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...
 
Robustness testing
Robustness testingRobustness testing
Robustness testing
 
DEFCON 23 - Lance buttars Nemus - sql injection on lamp
DEFCON 23 - Lance buttars Nemus - sql injection on lampDEFCON 23 - Lance buttars Nemus - sql injection on lamp
DEFCON 23 - Lance buttars Nemus - sql injection on lamp
 

More from Lionel Briand

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
Lionel Briand
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
Lionel Briand
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System Security
Lionel Briand
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Lionel Briand
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation Testing
Lionel Briand
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical Systems
Lionel Briand
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Lionel Briand
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
Lionel Briand
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Lionel Briand
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System Logs
Lionel Briand
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software Testing
Lionel Briand
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Lionel Briand
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Lionel Briand
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Lionel Briand
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case Prioritization
Lionel Briand
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Lionel Briand
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...
Lionel Briand
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Lionel Briand
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Lionel Briand
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...
Lionel Briand
 

More from Lionel Briand (20)

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System Security
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation Testing
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical Systems
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System Logs
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software Testing
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case Prioritization
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...
 

Recently uploaded

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

Automated Testing for SQL Injection Vulnerabilities: An Input Mutation Approach

  • 1. Automated Testing for SQL Injection Vulnerabilities: An Input Mutation Approach Dennis Appelt, Cu D. Nguyen, Nadia Alshahwan, Lionel Briand Software Verification and Validation Laboratory Interdisciplinary Centre for Security, Reliability and Trust University of Luxembourg 25, July, 2014
  • 2. Web Apps are at risk OWASP Top 10 2013 2 A1 – Injec;on A2 – Broken Authen;ca;on and Session Management A3 – Cross-­‐Site Scrip;ng A4 – Insecure Object References …
  • 4. 4
  • 6. Defini;on 6 SQL Injec;on aNacks target database-­‐driven systems by injec;ng SQL code fragments into vulnerable input parameters that are not properly checked and sani;sed.
  • 7. Example Example code vulnerable to SQL injec;on: 1 . $sql = "Select * From hotelList where country =’";! 2 . $sql = $sql . $country;! 3 . $sql = $sql . ’"’;! 3 . $result = mysql_query($sql) or die(mysql_error());! Parameter assignment: $country ß Luxembourg Resul;ng statement: 1. SELECT * FROM hotelList WHERE country=’Luxembourg’! 7
  • 8. Example Example code vulnerable to SQL injec;on: 1 . $sql = "Select * From hotelList where country =’";! 2 . $sql = $sql . $country;! 3 . $sql = $sql . ’"’;! 3 . $result = mysql_query($sql) or die(mysql_error());! Parameter assignment: $country ß ‘ or 1=1 -- Resul;ng statement: 1. SELECT * FROM hotelList WHERE country=’’ OR 1=1 --’! 8
  • 9. Automated Tes;ng for SQL Injec;on Vulnerabili;es An Input Muta;on Approach 9
  • 11. 11 Focus on Exploitable Vulnerabili;es
  • 12. 12 Automated Test Execu;on
  • 15. Approach -­‐ Overview 15 WAF SUT Monitor Data base Test generator XAVIER DB WSDL Proxy Input samples test reports
  • 16. Approach – Test Genera;on 16 WAF SUT Monitor Data base Test generator XAVIER DB WSDL Proxy Input samples test reports We want to generated test cases that • result in executable SQL statements • bypass the web applica;on firewall
  • 17. Approach – Test Genera;on • μ4SQLi – Muta;on approach: manipulate legal test cases to become SQLi aNacks 17
  • 18. Approach – Test Genera;on • μ4SQLi – Muta;on approach: manipulate legal test cases to become SQLi aNacks – 12 muta;on operators grouped in 3 categories • Behavior-­‐changing • Syntax-­‐repairing • Obfusca;on 18
  • 19. Approach – Test Genera;on • μ4SQLi – Muta;on approach: manipulate legal test cases to become SQLi aNacks – 12 muta;on operators grouped in 3 categories • Behavior-­‐changing • Syntax-­‐repairing • Obfusca;on – A large number of test cases can be generated 19
  • 20. Behavior-­‐changing MO Example of a behavior-­‐changing muta;on operator Valid Input John Doe Apply MO_or Malicious Input John Doe’ OR ‘a’=‘a SELECT * FROM users WHERE name=‘John Doe’ OR ‘a’=‘a’ Execute SUT Behavior-­‐changing 20
  • 21. Syntax-­‐repairing MO Example of a syntax-­‐repairing muta;on operator Malicious Input John Doe’ OR ‘a’=‘a SELECT * FROM users WHERE func(‘$userinput’) SELECT * FROM users WHERE func(‘John Doe’ OR ‘a’=‘a’) Execute SUT Behavior-­‐changing è Incorrect SQL syntax, will not execute Statement without user input: 21
  • 22. Syntax-­‐repairing MO Example of a syntax-­‐repairing muta;on operator SELECT * FROM users WHERE func(‘$userinput’) Statement without user input: Malicious Input John Doe’) OR ‘a’=‘a’ # SELECT * FROM users WHERE func(‘John Doe’) OR ‘a’=‘a’ #’) Execute SUT Syntax-­‐repairing 22
  • 23. Obfusca;on MO Example of an obfusca;on muta;on operator Malicious Input John Doe’/*/OR+‘a’=x’61 SELECT * FROM users WHERE name=‘John Doe’/*/OR+‘a’=x’61’ Execute SUT Obfusca;on 23
  • 24. Approach – Test Oracle 24 WAF SUT Monitor Data base Test generator XAVIER DB WSDL Proxy Input samples test reports Monitor: -­‐ Observes the traffic between SUT and database -­‐ Detects if a test case triggered an SQLi vulnerability
  • 25. Approach – Test Oracle • Inspects if a SQL statement which has been injected into is executable. 25 $country ß ‘) OR 1=1 -- SELECT * FROM hotelList WHERE country=’’) OR 1=1 --’!
  • 26. Approach – Test Oracle • Inspects if a SQL statement which has been injected into is executable. $country ß ‘) OR 1=1 -- èANack is not executed 26 SELECT * FROM hotelList WHERE country=’’) OR 1=1 --’! Syntax Error: Missing Opening Parenthesis
  • 28. Subjects 28 Applica,on # Opera,ons # Parameters KLoC Hotel Reserva;on Service 7 21 1.5 SugarCRM 26 87 352 Total 33 108 353.5 Each subject is tested with and without firewall à 4 dis;nct experiment setups
  • 29. Baseline – Standard ANacks • Consists of standard aNacks – List of 137 SQLi aNacks – Diverse set of known paNerns • State-­‐of-­‐the-­‐art tools use such aNacks – E.g. BurpSuite, SoapUI 29
  • 30. Research Ques;ons RQ1: Are standard a*acks and mutated a*acks (generated by μ4SQLi) likely to reveal exploitable SQLi vulnerabili?es? RQ2: With and without the presence of the WAF, which input genera?on technique performs be*er? 30
  • 31. Variables 31 T – total number of test cases that generate SQL statements that get flagged by the monitor Te – as T but in addi;on flagged SQL statements must be executable
  • 32. Variables 32 T – total number of test cases that generate SQL statements that get flagged by the monitor Te – as T but in addi;on flagged SQL statements must be executable SUT DB ti s1 s2 … sn
  • 33. Variables 33 T – total number of test cases that generate SQL statements that get flagged by the monitor Te – as T but in addi;on flagged SQL statements must be executable SUT DB ti s1 s2 … sn If at least one statement is flagged, ti reveals a vulnerabilityà increment T If the flagged statement is executable à increment Te
  • 34. 34 Results Standard ANacks μ4SQLi
  • 35. Research Ques;on 1 Are standard a*acks and mutated a*acks (generated by μ4SQLi) likely to reveal exploitable SQLi vulnerabili?es? 35
  • 36. Research Ques;on 1 Are standard a*acks and mutated a*acks (generated by μ4SQLi) likely to reveal exploitable SQLi vulnerabili?es? 36 Answer Both techniques can reveal SQLi vulnerabili?es when no firewall was used. Most vulnerabili?es are highly likely to be detected with at most a few dozen test cases or less.
  • 37. Research Ques;on 2 37 With and without the presence of the WAF, which input genera?on technique performs be*er?
  • 38. Research Ques;on 2 38 With and without the presence of the WAF, which input genera?on technique performs be*er? Answer μ4SQLi generates a higher percentage of tests that can reveal SQLi vulnerabili?es. Further, in the presence of a WAF, μ4SQLi is also capable of doing so.
  • 40.
  • 41.
  • 42. WAF SUT Monitor Data base Test generator XAVIER DB WSDL Proxy Input samples test reports
  • 43. WAF SUT Monitor Data base Test generator XAVIER DB WSDL Proxy Input samples test reports
  • 45. Operator Name Descrip,on Behavior-­‐Changing Operators MO_or Adds an OR-­‐clause to the input MO_and Adds an AND-­‐clause to the input MO_semi Adds semicolon followed by an addi;onal SQL statement Syntax-­‐Repairing Operators MO_par Appends a parenthesis to a valid input MO_cmt Adds a comment command (-­‐-­‐ or #) to an input MO_qot Adds a single or double quote to an input Obfusca,on Operators MO_wsp Changes the encoding of whitespaces MO_chr Changes the encoding of a character literal MO_html Changes the encoding of an input to HTML en;ty encoding MO_per Changes the encoding of an input to percentage encoding MO_bool Rewrites a boolean expression while preserving it’s truth value MO_keyw Changes capitaliza;on and inserts comments into SQL keywords 45
  • 46. Approach – Test Genera;on Valid Test Case req_hotelServer_getRoomsByRate.xml 1 <soapenv:Envelope> 2 <soapenv:Header/> 3 <soapenv:Body> 4 <urn:getRoomsByRate> 5 <minPrice xsi:type="xsd:float">100</minPrice> 6 <maxPrice xsi:type="xsd:float">400</maxPrice> 7 <country xsi:type="xsd:string">France</country> 8 <start xsi:type="xsd:integer">1</start> 9 </urn:getRoomsByRate> 10 </soapenv:Body> 11 </soapenv:Envelope> 12 <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <urn:getRoomsByRate> <minPrice xsi:type="xsd:float">100</minPrice> <maxPrice xsi:type="xsd:float">400</maxPrice> <country xsi:type="xsd:string">"||not 0--</country> <start xsi:type="xsd:integer">1</start> </urn:getRoomsByRate> </soapenv:Body> </soapenv:Envelope> μ4SQLi SQLi Test Case 46
  • 47. 47 Results Standard ANacks μ4SQLi
  • 48. 48 Results Standard ANacks μ4SQLi
  • 49. 49 Results Standard ANacks μ4SQLi
  • 50. Results without WAF Subject Parameter Standard AMacks μ4SQLi %T %Te %T %Te HotelRS country 12.41 5.84 40.62 21.80 arrDate 35.04 9.49 42.05 12.50 depDate 35.04 9.49 42.96 12.03 name 35.04 9.49 43.36 12.91 address 35.04 9.49 39.81 11.00 email 35.04 9.49 41.73 11.23 SugarCRM value 37.23 0 41.48 22.51 ass_user_id 32.85 8.03 42.49 13.91 query1 32.85 3.65 9.82 0.30 query2 54.74 5.84 81.72 33.45 order_by 59.85 10.95 85.98 33.55 rel_mod_qry 47.45 2.92 49.79 0
  • 51. Results with WAF Subject Parameter Standard AMacks μ4SQLi %T %Te %T %Te HotelRS country 0.73 0 36.84 20.69 arrDate 2.19 0 42.05 12.50 depDate 5.84 0 42.96 12.03 name 6.57 0 43.36 12.91 address 7.30 0 39.81 11.00 email 6.57 0 41.73 11.23 SugarCRM value 2.19 0 37.42 20.48 ass_user_id 5.11 0 29.35 6.89 query1 0.73 0 8.97 0.20 query2 3.65 0 76.56 31.43 order_by 7.30 0 80.08 31.96 rel_mod_qry 6.57 0 44.82 0