19.08.2015 Views

4.0

1IZ1TDd

1IZ1TDd

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

176Web Application Penetration Testingpath=/; domain=example.com; httponlyLocation: private/X-Content-Type-Options: nosniffX-XSS-Protection: 1; mode=blockX-Frame-Options: SAMEORIGINContent-Length: 0Keep-Alive: timeout=1, max=100Connection: Keep-AliveContent-Type: text/html----------------------------------------------------------http: /example.com/privateGET /private HTTP/1.1Host: example.comUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9;rv:25.0) Gecko/20100101 Firefox/25.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: https: /secure.example.com/loginCookie: JSESSIONID=BD99F321233AF69593ED-F52B123B5BDA;Connection: keep-aliveHTTP/1.1 200 OKCache-Control: no-storePragma: no-cacheExpires: 0Content-Type: text/html;charset=UTF-8Content-Length: 730Date: Tue, 25 Dec 2013 00:00:00 GMT----------------------------------------------------------Tools• [5] curl can be used to check manually for pagesReferencesOWASP Resources• [1] OWASP Testing Guide - Testing for Weak SSL/TLS Ciphers,Insufficient Transport Layer Protection (OTG-CRYPST-001)• [2] OWASP TOP 10 2010 - Insufficient Transport LayerProtection• [3] OWASP TOP 10 2013 - Sensitive Data Exposure• [4] OWASP ASVS v1.1 - V10 Communication Security VerificationRequirements• [6] OWASP Testing Guide - Testing for Cookies attributes(OTG-SESS-002)Testing for business logicSummaryTesting for business logic flaws in a multi-functional dynamicweb application requires thinking in unconventional methods.If an application’s authentication mechanism is developed withthe intention of performing steps 1, 2, 3 in that specific order toauthenticate a user. What happens if the user goes from step 1straight to step 3? In this simplistic example, does the applicationprovide access by failing open; deny access, or just error outwith a 500 message?There are many examples that can be made, but the one constantlesson is “think outside of conventional wisdom”. This typeof vulnerability cannot be detected by a vulnerability scannerand relies upon the skills and creativity of the penetration tester.In addition, this type of vulnerability is usually one of the hardestto detect, and usually application specific but, at the sametime, usually one of the most detrimental to the application, ifexploited.The classification of business logic flaws has been under-studied;although exploitation of business flaws frequently happensin real-world systems, and many applied vulnerability researchersinvestigate them. The greatest focus is in web applications.There is debate within the community about whether theseproblems represent particularly new concepts, or if they are variationsof well-known principles.Testing of business logic flaws is similar to the test types usedby functional testers that focus on logical or finite state testing.These types of tests require that security professionals think abit differently, develop abused and misuse cases and use manyof the testing techniques embraced by functional testers. Automationof business logic abuse cases is not possible and remainsa manual art relying on the skills of the tester and their knowledgeof the complete business process and its rules.Business Limits and RestrictionsConsider the rules for the business function being provided bythe application. Are there any limits or restrictions on people’sbehavior? Then consider whether the application enforces thoserules. It’s generally pretty easy to identify the test and analysiscases to verify the application if you’re familiar with the business.If you are a third-party tester, then you’re going to have touse your common sense and ask the business if different operationsshould be allowed by the application.Sometimes, in very complex applications, the tester will not havea full understanding of every aspect of the application initially.In these situations, it is best to have the client walk the testerthrough the application, so that they may gain a better understandingof the limits and intended functionality of the application,before the actual test begins. Additionally, having a directline to the developers (if possible) during testing will help outgreatly, if any questions arise regarding the application’s functionality.Description of the IssueAutomated tools find it hard to understand context, hence it’s upto a person to perform these kinds of tests. The following twoexamples will illustrate how understanding the functionality ofthe application, the developer’s intentions, and some creative“out-of-the-box” thinking can break the application’s logic. Thefirst example starts with a simplistic parameter manipulation,whereas the second is a real world example of a multi-step processleading to completely subvert the application.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!