Top Banner
Application Security Testing A practitioner’s rambling advice & musings
27

Application Security Testing A practitioner’s rambling advice & musings.

Jan 02, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Application Security Testing A practitioner’s rambling advice & musings.

Application Security Testing

A practitioner’s rambling advice & musings

Page 2: Application Security Testing A practitioner’s rambling advice & musings.

Who am I?

• Security testing and software development for 13 years

• Manage a large FIs penetration testing team• Blah blah blah

Page 3: Application Security Testing A practitioner’s rambling advice & musings.

APPLICATION SECURITY TESTINGThe basics of…

Page 4: Application Security Testing A practitioner’s rambling advice & musings.

Types of Testing

• Black box• White box• Grey box

Page 5: Application Security Testing A practitioner’s rambling advice & musings.

Step Zero – Reconnaissance

• What does the app do? • What are some assumptions that are made?• Platform? • Language?• Identify the attack surface• Etc…

Page 6: Application Security Testing A practitioner’s rambling advice & musings.

User Inputs

• Ports• Pipes• Form inputs• Cookies• Headers• Web Services• Etc….

Page 7: Application Security Testing A practitioner’s rambling advice & musings.

Step One - Test Cases

• Security testing• What if…?– What if I put in a -1 in the transfer amount field?

• How does it…?– Does the server handle a 10 mb file being

uploaded?• Will it handle…?• Etc…

Page 8: Application Security Testing A practitioner’s rambling advice & musings.

Step Two - Attacks- aka the fun part

• Confirmation and refinement of test cases• Your first attack is often wrong • Tools are great for the low-hanging fruit

Page 9: Application Security Testing A practitioner’s rambling advice & musings.

Most Useful Tools

• Your brain• Attack proxy (ZAP, Burp, Fiddler, etc…)• IDE / Editor• Google is your friend• Your brain

Page 10: Application Security Testing A practitioner’s rambling advice & musings.

CODE READING 101

Page 11: Application Security Testing A practitioner’s rambling advice & musings.

Many different ways

• Some approaches– User-interface down– Grep– Functional points– Etc…

Page 12: Application Security Testing A practitioner’s rambling advice & musings.

Some hints

• Look at APIs being used, and are they correct.– HINT: esc_sql in Wordpress

It should be noted that this function will only escape values to be used in strings in the query, as shown in the above example. That is, it only provides escaping for values that will be within quotes (as in field = '{$escaped_value}'). If your value is not going to be within quotes, your code will still be vulnerable to SQL injection. For example, this is vulnerable, because the escaped value is not surrounded by quotes in the SQL query: ORDER BY {$escaped_value}.

Page 13: Application Security Testing A practitioner’s rambling advice & musings.

Hints Continued…

• <input value=“<?php echo get_option(“foo”); ?>” /> XSS– No encoding– Make sure encoding is correct for the context

Page 14: Application Security Testing A practitioner’s rambling advice & musings.

Common Vulnerabilities

• Cross-site Scripting• SQL injection• Cross-site request forgery• File upload

Page 15: Application Security Testing A practitioner’s rambling advice & musings.

IN THE ENTERPRISETesting

Page 16: Application Security Testing A practitioner’s rambling advice & musings.

Types of Environments

• Large enterprises• Consultancies• Technology companies• Government

Page 17: Application Security Testing A practitioner’s rambling advice & musings.

What Your Work Looks Like…

Typical Security Testers Day

Finding BugsMeetingsHelp Fixing IssuesCorp BS

Page 18: Application Security Testing A practitioner’s rambling advice & musings.

Common Drivers

• Compliance• Risk• Nation states• Business

Page 19: Application Security Testing A practitioner’s rambling advice & musings.

What does testing look like?

• Short duration• Very little depth (usually) • Way too many targets… way too little time– Looked at a different way lots of fun could be had

Page 20: Application Security Testing A practitioner’s rambling advice & musings.

HOW TO IMPROVE

Page 21: Application Security Testing A practitioner’s rambling advice & musings.

Obligatory Disclaimer

• Read the rules• Don’t be a Donkey• Education purposes

Page 22: Application Security Testing A practitioner’s rambling advice & musings.

Resources

• Vulnerable apps • Bug bounties• CVEs• Code check-ins• Write your own code!

Page 23: Application Security Testing A practitioner’s rambling advice & musings.

Questions?

Page 24: Application Security Testing A practitioner’s rambling advice & musings.

THE LAB

Page 25: Application Security Testing A practitioner’s rambling advice & musings.

WordPress Background

• PHP and MySQL• Plugins – stored in /wp-content/plugins• Themes – stored in /wp-content/themes

Page 26: Application Security Testing A practitioner’s rambling advice & musings.

VM

• Has four vulnerable plugins installed– Gravity forms – blind SQLi– Ab-google-map-travel – persistent XSS– Wordpress SEO – blind SQLi– Inboundio-marketing – remote shell upload

• Read the code• Test cases• Admin login:

– user– bitnami

Page 27: Application Security Testing A practitioner’s rambling advice & musings.

Useful Links

• Bug Bounties– https://www.facebook.com/BugBounty– http://www.google.com/about/appsecurity/reward-program/– https://hackerone.com/programs

• CVE - https://cve.mitre.org/ • https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project