Book Image

Hands-On Application Penetration Testing with Burp Suite

By : Carlos A. Lozano, Dhruv Shah, Riyaz Ahemed Walikar
Book Image

Hands-On Application Penetration Testing with Burp Suite

By: Carlos A. Lozano, Dhruv Shah, Riyaz Ahemed Walikar

Overview of this book

Burp suite is a set of graphic tools focused towards penetration testing of web applications. Burp suite is widely used for web penetration testing by many security professionals for performing different web-level security tasks. The book starts by setting up the environment to begin an application penetration test. You will be able to configure the client and apply target whitelisting. You will also learn to setup and configure Android and IOS devices to work with Burp Suite. The book will explain how various features of Burp Suite can be used to detect various vulnerabilities as part of an application penetration test. Once detection is completed and the vulnerability is confirmed, you will be able to exploit a detected vulnerability using Burp Suite. The book will also covers advanced concepts like writing extensions and macros for Burp suite. Finally, you will discover various steps that are taken to identify the target, discover weaknesses in the authentication mechanism, and finally break the authentication implementation to gain access to the administrative console of the application. By the end of this book, you will be able to effectively perform end-to-end penetration testing with Burp Suite.
Table of Contents (19 chapters)
Title Page
Copyright and Credits
Contributors
About Packt
Preface
12
Exploiting and Exfiltrating Data from a Large Shipping Corporation
Index

Detecting SSTI


SSTI vulnerabilities depend a lot on the engine used by the tested application. However, the main idea in template engines is that you pass a parameter, which is interpreted by the engine, and it creates the view. So, most engines are waiting for a text to parse it and display it. Take the following as an example:

any=Hello 
<b>Hello</b> 

In the preceding example, the application receives a string and the engine automatically adds HTML tags to display it. Also, these engines can interpret values passed as parameters, such as operators. For example:

any=Hello ${7*7} 
Hello 49 

In this case, the engine evaluates the * operator with the values passed. So, if you pass an unexpected string as a parameter, it could be reflected, or it could be used to extract sensible information, as can be seen in the following:

personal_greeting=username<tag> 
Hello 
 
personal_greeting=username}}<tag> 
Hello user01 <tag> 

Here, the engine is interpreting the parameter...