SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Confessions of an Accidental 
Security Tester 
"I didn't break in, you left the door open" 
Alan Richardson 
@eviltester 
www.SeleniumSimplified.com 
www.EvilTester.com 
www.CompendiumDev.co.uk 
www.JavaForTesters.com
2 
WARNING 
I AM NOT A 
SECURITY 
TESTER
3 
“I am not a security tester” 
● I am a user that observes the system 
at a lower level of detail than many 
users 
● I think about what I observe 
● Based on my observations I then ask 
the system 'what if?' questions
4 
“Accidentally Stumble” 
I prefer to get paid for finding defects 
But... 
● I use the web for business 
● My personal details are submitted to web sites 
● I like to make sure I'm safe 
● I 'accidentally stumble' across security defects
5 
“By adopting my 
'Bad' habits, you can 
Accidentally Stumble 
across Security 
Defects too”
6 
How I 'Accidentally Stumble' 
● I use browser dev tools in my normal day to day 
web surfing: 
– Firebug, Chrome Developer Tools 
● I often have all my web traffic running through a 
debug proxy: 
– Fiddler, BurpSuite, ZAP 
● I inspect Web Forms before I submit them 
This is normal behaviour for me.
7 
“I developed these 
'bad' habits out of 
necessity”
8 
I wanted to skip the online TV ads
9 
I sucked at online games
10 
Reading 'unreadable content'
Bypassing Bugs and annoyances on 
11 
WebSites 
● Div based overlays that stop me doing what 
I need to 
● Buttons not enabled when they should be 
● Incorrect JavaScript validation that marks 
invalid my valid details 
● Etc.
“It wasn't me Guv, 
THEY made me do it” 
12
13 
“Other normal people 
will develop these 
habits as well”
14 
It won't just be me doing this 
● Browser Dev Tools are now installed by default 
● Everyone has access to lower level observation 
and manipulation features 
● “No user would ever do that” is no longer valid 
● Some users are kids. 
– Kids love doing this
15 
“I'm not a security 
tester. I'm just a 
Cruddy guy”
16 
C.R.U.D.dy 
● Create 
– Create new POST requests with the information you 
want 
● Read 
– Read the HTTP requests and see the information to 
build a model of the system 
● Update 
– Update the information sent to the server to match 
what I want 
● Delete 
– Delete requests and responses I dont' want
17 
What do you apply CRUD to? 
● URL 
● Cookies 
● Payloads 
● Form Fields 
● DOM 
● HTTP Methods 
● HTTP Headers 
● etc. 
– make a list of 'entities' involved in HTTP process
18 
Example URL CRUD 
● URL 
– (C)Guess new urls, new params, mixup params 
– (R)track used urls, 
– (U)amend params in url, 
– (D)change HTTP method; delete params 
● Why? 
– See new products, change items in page, 
undocumented API commands, etc. 
● How? 
– Proxy tools, Amend DOM, Amend URL in browser
● Read 
● Update Before Sending 
● Delete so never sent 
● Create new requests 
based on old requests 
19 
Example HTTP Request 
Amend in DOM 
before sent 
to proxy 
Browser Proxy Server 
● Read 
● Update Before Receipt 
● Create/Replace so receive 
something else 
● Delete so never Received
20 
Example Cookie CRUD 
● Create new Cookies 
● Update values 
● Read – track cookies over time 
● Delete Cookies 
● Why? 
– Session hijacking, new permissions, change 
baskets, depends what they are used for, etc. 
● How? 
– Browser dev tools, Debug Proxy
21 
My First Proper Security Bug 
● My first crowd sourced testing 
experiment 
– Testing a 'social media' video sharing 
& watching site 
● Everyone else: 
– Low hanging fruit, spelling errors, 
broken links, missing images, etc. 
● Me: 
– I can access the live system and see 
all customer details including emails 
and addresses
22 
How did I find the defect? 
● I used the site 
● I ran the traffic through a Proxy 
● I saw the urls of requests that 
returned user data 
● I created a request & tried /users/ 
instead of /user 
● I changed test.site.com to site.com 
to hit live 
● Ooops, live data vulnerability 
Read 
Observe / Model 
Create 
Update
23 
Lessons Learned – 
Companies Love Security Defects 
5 Star Tester 
Only Quality 
Defects Here
Technical Defect 
24 
See how much they loved me 
I raised a 
I raised a 
showstopper! 
I was 5 star, 
now I'm 4.5 
$$ Big Money $$
25 
I didn't deliberately look for a 
security issue 
● I explored the system 
– Perform normal functions, observing traffic 
● I built a model 
– How do the requests map to the functions 
● I thought about the model from a 'risk' 
perspective 
– Does the API let you see all Users? 
– Does this work on live? 
● I found a way to ask the system the questions
26 
Generic Lessons Learned 
● The techniques and tools that we normally use 
for web testing extend to security testing 
● Increase your ability to Observe the system 
● Model the system 
● Think about what that model implies 
● Manipulate the system and ask 'what if' 
questions 
– Sometimes known as 'testing'
27 
Defects I 'mostly' got fixed 
● Viewing the revenue reports for other sellers 
– Urls not protected by user permissions 
● Unpaid video downloading via ipad and android 
– Permissions from web across devices 
● The 'Get' that became a 'Post' 
– Comments in site, Open source documentation 
● Should I be able to buy this for $0? 
– Shopping cart amendment
28 
Some notes on 
Reporting and 
Advocacy
29 
My old process 
● Email to support 
● Another Email 
● And another 
● Etc.
30 
When it was really serious 
● Email to support 
● Public post in their user forums or Facebook 
● Email to support 
● Find the emails of CEO, CTO, etc. 
● Email as many people in the company as I can 
● Replies to other people's posts in the forums 
Nag Nag Naggity Nag
31 
What I've found works 
● Create a video of you doing the exploit, as 
though it were a tutorial video 
● Email the video 
● Mention that you release video tutorials to 
YouTube 
youtube.com/EvilTesterVideos
32 
Lessons learned 
● Make it impossible to misunderstand 
– Write it up clearly 
– Show it in Action 
– Create a 'script' that performs the exploit 
● Let everyone in the company that you can find 
see the exploit
33 
And if they don't fix it... 
...at least you have an automated 
script that allows you to continue to 
take advantage of it
34 
“Some Defects 
don't get fixed 
quickly, they are 
still live”
35 
“I stumbled across 
security issues on 
a well known 
developer 
conference web 
site”
36 
“There are product 
sales sites where I 
can still download 
their stuff for free”
“I found a 'download' 
form that supplied me 
37 
with emails and 
server commands I 
could have tried”
38 
If you are a tester... 
● You should already have the thought processes 
required to stumble across these issues 
– Model, Observe, Risk, Manipulate, CRUD 
● You may need to learn 
– to read HTTP requests 
– JavaScript, and use the Dev Tool Debugger 
● You may need to start using 
– Debug Proxies – Fiddler, ZAP, BurpSuite 
– Browser Dev Tools & Firebug
39 
WARNING 
THIS IS A 
SLIPPERY 
SLOPE 
OUCH!
40 
Warning: Slippery Slope 
● You start seeing more of these problems 
● You become more concerned... 
– And start using VPNs 
– Monitoring your apps and network using Wireshark 
● You gain more technical knowledge 
● You test at deeper levels of the system
41 
And I learn generic issues 
● Too much data in JSON 
– Performance issue 
– Possible Security Issue 
● Knock on security impact of small change 
● Data in JSON used in 'other' places 
– Enrich domain model from multiple sources
42 
Suggested Reading/ Viewing 
unow.be/at/techwebtest101
43 
Suggested Gateway Hobbies 
● Monitor HTTP Wifi Network traffic using 
WireShark 
– Suggested locations: Hotels, Public WiFi, 
Conferences, and Airport Lounges 
● Monitor your network traffic using an HTTP 
debug proxy 
● Investigate the DOM using Browser Dev Tools, 
by default 
● Break out of the sandbox of Kiosk systems
44 
Blogs and Websites 
● CompendiumDev.co.uk 
● SeleniumSimplified.com 
● EvilTester.com 
● JavaForTesters.com 
● Twitter: @eviltester 
Online Training Courses 
● Technical Web Testing 101 
Unow.be/at/techwebtest101 
● Intro to Selenium 
Unow.be/at/startwebdriver 
● Selenium 2 WebDriver API 
Unow.be/at/webdriverapi 
Videos 
youtube.com/user/EviltesterVideos 
Books 
Selenium Simplified 
Unow.be/rc/selsimp 
Java For Testers 
leanpub.com/javaForTesters 
Alan Richardson 
uk.linkedin.com/in/eviltester 
Independent Test Consultant 
& Custom Training 
Contact Alan 
http://compendiumdev.co.uk/contact

Mais conteúdo relacionado

Mais procurados

Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When AutomatingAlan Richardson
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Alan Richardson
 
Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Alan Richardson
 
Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Alan Richardson
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based TestingAlan Richardson
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Alan Richardson
 
The Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingThe Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingAlan Richardson
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Alan Richardson
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesAlan Richardson
 
Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep DiveAlan Richardson
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment TestingAlan Richardson
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentAlan Richardson
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Alan Richardson
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With AgilityAlan Richardson
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameAlan Richardson
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingAlan Richardson
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonAlan Richardson
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyAlan Richardson
 
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Alan Richardson
 

Mais procurados (20)

Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
 
Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021
 
Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based Testing
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
 
The Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingThe Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and Automating
 
Devfest 2019-slides
Devfest 2019-slidesDevfest 2019-slides
Devfest 2019-slides
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slides
 
Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep Dive
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment Testing
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software Development
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With Agility
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" Game
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support Testing
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan Richardson
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be Flaky
 
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
 

Semelhante a Accidental Security Tester Reveals How to Find Bugs Without Looking

Push Functional Testing Further
Push Functional Testing FurtherPush Functional Testing Further
Push Functional Testing FurtherAlan Richardson
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideasRichard Robinson
 
An Introduction To Software Development - Testing, Continuous integration
An Introduction To Software Development - Testing, Continuous integrationAn Introduction To Software Development - Testing, Continuous integration
An Introduction To Software Development - Testing, Continuous integrationBlue Elephant Consulting
 
Hogy néz ki egy pentest meló a gyakorlatban?
Hogy néz ki egy pentest meló a gyakorlatban?Hogy néz ki egy pentest meló a gyakorlatban?
Hogy néz ki egy pentest meló a gyakorlatban?hackersuli
 
Five Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal SiteFive Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal SiteMediacurrent
 
Owasp tds
Owasp tdsOwasp tds
Owasp tdssnyff
 
The Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialThe Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialAlan Richardson
 
Ask a Malware Archaeologist
Ask a Malware ArchaeologistAsk a Malware Archaeologist
Ask a Malware ArchaeologistMichael Gough
 
Reporting service applications
Reporting service applicationsReporting service applications
Reporting service applicationsSayed Ahmed
 
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltStack
 
My Bug Hunting With Open Source
My Bug Hunting With Open SourceMy Bug Hunting With Open Source
My Bug Hunting With Open SourceMadhu Akula
 
Bsidesvienna sentinel v0.4
Bsidesvienna sentinel v0.4Bsidesvienna sentinel v0.4
Bsidesvienna sentinel v0.4nibod
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.pptjaved281701
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersAndrew McNicol
 
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress Coding
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress CodingWordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress Coding
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress CodingAaron Saray
 
Drupal, lessons learnt from real world security incidents
Drupal, lessons learnt from real world security incidentsDrupal, lessons learnt from real world security incidents
Drupal, lessons learnt from real world security incidentssydneydrupal
 
Auditing Drupal Sites
Auditing Drupal SitesAuditing Drupal Sites
Auditing Drupal SitesExove
 
Tw noche geek quito webappsec
Tw noche geek quito   webappsecTw noche geek quito   webappsec
Tw noche geek quito webappsecThoughtworks
 

Semelhante a Accidental Security Tester Reveals How to Find Bugs Without Looking (20)

Push Functional Testing Further
Push Functional Testing FurtherPush Functional Testing Further
Push Functional Testing Further
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideas
 
An Introduction To Software Development - Testing, Continuous integration
An Introduction To Software Development - Testing, Continuous integrationAn Introduction To Software Development - Testing, Continuous integration
An Introduction To Software Development - Testing, Continuous integration
 
Hogy néz ki egy pentest meló a gyakorlatban?
Hogy néz ki egy pentest meló a gyakorlatban?Hogy néz ki egy pentest meló a gyakorlatban?
Hogy néz ki egy pentest meló a gyakorlatban?
 
Five Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal SiteFive Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal Site
 
Owasp tds
Owasp tdsOwasp tds
Owasp tds
 
The Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialThe Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies Tutorial
 
Ask a Malware Archaeologist
Ask a Malware ArchaeologistAsk a Malware Archaeologist
Ask a Malware Archaeologist
 
Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
 
Reporting service applications
Reporting service applicationsReporting service applications
Reporting service applications
 
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
 
My Bug Hunting With Open Source
My Bug Hunting With Open SourceMy Bug Hunting With Open Source
My Bug Hunting With Open Source
 
Bsidesvienna sentinel v0.4
Bsidesvienna sentinel v0.4Bsidesvienna sentinel v0.4
Bsidesvienna sentinel v0.4
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.ppt
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathers
 
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress Coding
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress CodingWordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress Coding
WordCamp Milwaukee 2012 - Aaron Saray - Secure Wordpress Coding
 
Drupal, lessons learnt from real world security incidents
Drupal, lessons learnt from real world security incidentsDrupal, lessons learnt from real world security incidents
Drupal, lessons learnt from real world security incidents
 
Auditing Drupal Sites
Auditing Drupal SitesAuditing Drupal Sites
Auditing Drupal Sites
 
Owasp top 10 2013
Owasp top 10 2013Owasp top 10 2013
Owasp top 10 2013
 
Tw noche geek quito webappsec
Tw noche geek quito   webappsecTw noche geek quito   webappsec
Tw noche geek quito webappsec
 

Mais de Alan Richardson

The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing WebinarAlan Richardson
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsAlan Richardson
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAlan Richardson
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST APIAlan Richardson
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzAlan Richardson
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.Alan Richardson
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMapAlan Richardson
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingAlan Richardson
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017Alan Richardson
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?Alan Richardson
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupAlan Richardson
 
Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Alan Richardson
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAlan Richardson
 
Learning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopLearning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopAlan Richardson
 
How to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingHow to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingAlan Richardson
 

Mais de Alan Richardson (16)

The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing Webinar
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStrings
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil Tester
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST API
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzz
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMap
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile Testing
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setup
 
Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when Testing
 
Learning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopLearning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public Workshop
 
How to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingHow to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public Speaking
 

Último

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
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 GoalLionel Briand
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Último (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
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
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Accidental Security Tester Reveals How to Find Bugs Without Looking

  • 1. Confessions of an Accidental Security Tester "I didn't break in, you left the door open" Alan Richardson @eviltester www.SeleniumSimplified.com www.EvilTester.com www.CompendiumDev.co.uk www.JavaForTesters.com
  • 2. 2 WARNING I AM NOT A SECURITY TESTER
  • 3. 3 “I am not a security tester” ● I am a user that observes the system at a lower level of detail than many users ● I think about what I observe ● Based on my observations I then ask the system 'what if?' questions
  • 4. 4 “Accidentally Stumble” I prefer to get paid for finding defects But... ● I use the web for business ● My personal details are submitted to web sites ● I like to make sure I'm safe ● I 'accidentally stumble' across security defects
  • 5. 5 “By adopting my 'Bad' habits, you can Accidentally Stumble across Security Defects too”
  • 6. 6 How I 'Accidentally Stumble' ● I use browser dev tools in my normal day to day web surfing: – Firebug, Chrome Developer Tools ● I often have all my web traffic running through a debug proxy: – Fiddler, BurpSuite, ZAP ● I inspect Web Forms before I submit them This is normal behaviour for me.
  • 7. 7 “I developed these 'bad' habits out of necessity”
  • 8. 8 I wanted to skip the online TV ads
  • 9. 9 I sucked at online games
  • 11. Bypassing Bugs and annoyances on 11 WebSites ● Div based overlays that stop me doing what I need to ● Buttons not enabled when they should be ● Incorrect JavaScript validation that marks invalid my valid details ● Etc.
  • 12. “It wasn't me Guv, THEY made me do it” 12
  • 13. 13 “Other normal people will develop these habits as well”
  • 14. 14 It won't just be me doing this ● Browser Dev Tools are now installed by default ● Everyone has access to lower level observation and manipulation features ● “No user would ever do that” is no longer valid ● Some users are kids. – Kids love doing this
  • 15. 15 “I'm not a security tester. I'm just a Cruddy guy”
  • 16. 16 C.R.U.D.dy ● Create – Create new POST requests with the information you want ● Read – Read the HTTP requests and see the information to build a model of the system ● Update – Update the information sent to the server to match what I want ● Delete – Delete requests and responses I dont' want
  • 17. 17 What do you apply CRUD to? ● URL ● Cookies ● Payloads ● Form Fields ● DOM ● HTTP Methods ● HTTP Headers ● etc. – make a list of 'entities' involved in HTTP process
  • 18. 18 Example URL CRUD ● URL – (C)Guess new urls, new params, mixup params – (R)track used urls, – (U)amend params in url, – (D)change HTTP method; delete params ● Why? – See new products, change items in page, undocumented API commands, etc. ● How? – Proxy tools, Amend DOM, Amend URL in browser
  • 19. ● Read ● Update Before Sending ● Delete so never sent ● Create new requests based on old requests 19 Example HTTP Request Amend in DOM before sent to proxy Browser Proxy Server ● Read ● Update Before Receipt ● Create/Replace so receive something else ● Delete so never Received
  • 20. 20 Example Cookie CRUD ● Create new Cookies ● Update values ● Read – track cookies over time ● Delete Cookies ● Why? – Session hijacking, new permissions, change baskets, depends what they are used for, etc. ● How? – Browser dev tools, Debug Proxy
  • 21. 21 My First Proper Security Bug ● My first crowd sourced testing experiment – Testing a 'social media' video sharing & watching site ● Everyone else: – Low hanging fruit, spelling errors, broken links, missing images, etc. ● Me: – I can access the live system and see all customer details including emails and addresses
  • 22. 22 How did I find the defect? ● I used the site ● I ran the traffic through a Proxy ● I saw the urls of requests that returned user data ● I created a request & tried /users/ instead of /user ● I changed test.site.com to site.com to hit live ● Ooops, live data vulnerability Read Observe / Model Create Update
  • 23. 23 Lessons Learned – Companies Love Security Defects 5 Star Tester Only Quality Defects Here
  • 24. Technical Defect 24 See how much they loved me I raised a I raised a showstopper! I was 5 star, now I'm 4.5 $$ Big Money $$
  • 25. 25 I didn't deliberately look for a security issue ● I explored the system – Perform normal functions, observing traffic ● I built a model – How do the requests map to the functions ● I thought about the model from a 'risk' perspective – Does the API let you see all Users? – Does this work on live? ● I found a way to ask the system the questions
  • 26. 26 Generic Lessons Learned ● The techniques and tools that we normally use for web testing extend to security testing ● Increase your ability to Observe the system ● Model the system ● Think about what that model implies ● Manipulate the system and ask 'what if' questions – Sometimes known as 'testing'
  • 27. 27 Defects I 'mostly' got fixed ● Viewing the revenue reports for other sellers – Urls not protected by user permissions ● Unpaid video downloading via ipad and android – Permissions from web across devices ● The 'Get' that became a 'Post' – Comments in site, Open source documentation ● Should I be able to buy this for $0? – Shopping cart amendment
  • 28. 28 Some notes on Reporting and Advocacy
  • 29. 29 My old process ● Email to support ● Another Email ● And another ● Etc.
  • 30. 30 When it was really serious ● Email to support ● Public post in their user forums or Facebook ● Email to support ● Find the emails of CEO, CTO, etc. ● Email as many people in the company as I can ● Replies to other people's posts in the forums Nag Nag Naggity Nag
  • 31. 31 What I've found works ● Create a video of you doing the exploit, as though it were a tutorial video ● Email the video ● Mention that you release video tutorials to YouTube youtube.com/EvilTesterVideos
  • 32. 32 Lessons learned ● Make it impossible to misunderstand – Write it up clearly – Show it in Action – Create a 'script' that performs the exploit ● Let everyone in the company that you can find see the exploit
  • 33. 33 And if they don't fix it... ...at least you have an automated script that allows you to continue to take advantage of it
  • 34. 34 “Some Defects don't get fixed quickly, they are still live”
  • 35. 35 “I stumbled across security issues on a well known developer conference web site”
  • 36. 36 “There are product sales sites where I can still download their stuff for free”
  • 37. “I found a 'download' form that supplied me 37 with emails and server commands I could have tried”
  • 38. 38 If you are a tester... ● You should already have the thought processes required to stumble across these issues – Model, Observe, Risk, Manipulate, CRUD ● You may need to learn – to read HTTP requests – JavaScript, and use the Dev Tool Debugger ● You may need to start using – Debug Proxies – Fiddler, ZAP, BurpSuite – Browser Dev Tools & Firebug
  • 39. 39 WARNING THIS IS A SLIPPERY SLOPE OUCH!
  • 40. 40 Warning: Slippery Slope ● You start seeing more of these problems ● You become more concerned... – And start using VPNs – Monitoring your apps and network using Wireshark ● You gain more technical knowledge ● You test at deeper levels of the system
  • 41. 41 And I learn generic issues ● Too much data in JSON – Performance issue – Possible Security Issue ● Knock on security impact of small change ● Data in JSON used in 'other' places – Enrich domain model from multiple sources
  • 42. 42 Suggested Reading/ Viewing unow.be/at/techwebtest101
  • 43. 43 Suggested Gateway Hobbies ● Monitor HTTP Wifi Network traffic using WireShark – Suggested locations: Hotels, Public WiFi, Conferences, and Airport Lounges ● Monitor your network traffic using an HTTP debug proxy ● Investigate the DOM using Browser Dev Tools, by default ● Break out of the sandbox of Kiosk systems
  • 44. 44 Blogs and Websites ● CompendiumDev.co.uk ● SeleniumSimplified.com ● EvilTester.com ● JavaForTesters.com ● Twitter: @eviltester Online Training Courses ● Technical Web Testing 101 Unow.be/at/techwebtest101 ● Intro to Selenium Unow.be/at/startwebdriver ● Selenium 2 WebDriver API Unow.be/at/webdriverapi Videos youtube.com/user/EviltesterVideos Books Selenium Simplified Unow.be/rc/selsimp Java For Testers leanpub.com/javaForTesters Alan Richardson uk.linkedin.com/in/eviltester Independent Test Consultant & Custom Training Contact Alan http://compendiumdev.co.uk/contact