Philip Kulp

Dr. Philip Kulp has been consulting in cybersecurity for over 20 years, and working in IT for over 25 years. He currently works as a cybersecurity architect and incident responder, developing realistic approaches to securing enterprise. He also serves as a secure code reviewer, independent assessor, web application tester, and as an adjunct professor at Drexel University. He is an author and conference speaker on various cyber topics such as medical drone delivery, identifying malicious websites based on linking, and more.

projects by Philip Kulp

Develop Secure Java Applications to Prevent Website Attacks

4 weeks · 6-8 hours per week average · BEGINNER

In this series of liveProjects, you’ll repair serious security vulnerabilities uncovered in the Java backend of a server, servlet, and Java Server Pages (JSP). A security team has just finished a penetration test of your company’s web app, and you’ve been handed the list of everything that needs to be fixed—and fast. You’ll be given a complete sample application source code to work with. Each project in this series contains several vulnerabilities for you to tackle based on findings from the pentester’s results.

Session Hijacking

1 week · 6-8 hours per week · BEGINNER

In this liveProject, you’ll write secure Java code for handling potentially untrusted data in web applications. You’ll build systems that can protect against data from web app forms; safely handle cookies, headers and redirects; and set up secure authentication mechanisms. Finally, you’ll manage your third-party libraries and identify potential vulnerabilities using Software Composition Analysis (SCA). Insecure third-party libraries can add vulnerabilities to your otherwise secure application and have been used in several recent real-world compromises.

Secure Failing Code

1 week · 4-6 hours per week · BEGINNER

In this liveProject, you’ll learn how to defend against attacks that could force a failure in your application or cause it to enter an unstable state. Unexpected behaviors and fail states can allow an attacker to steal information or provide information for a secondary attack. You’ll create catch statements and methods that can securely handle exceptions, design code that can maintain state on failure, and learn to avoid unstable system states altogether.

Injection Attacks

1 week · 4-6 hours per week · BEGINNER

In this liveProject, you’ll fix bugs in your code that are vulnerable to injection attacks. Injection attacks are a serious risk to your application, allowing attackers to steal data, insert their own data, or make your system perform in unexpected ways. You’ll harden your app against the different types of injection attacks such as XML injection, serialized Java objects, JSON deserialization, Zipbomb attacks, and many more exciting attacks which require special defenses.

Scripting Attacks

1 week · 6-8 hours per week · BEGINNER

In this liveProject, you’ll tackle risks caused by unsafe input and output handling in your application. These bugs can make your application vulnerable to reflected and stored attacks such as Cross-Site Scripting (XSS). You’ll identify insecure code and develop fixes to securely handle inputs from untrusted sources, safely manage your encoded data, and avoid unsafe calculations with numeric data types. You will be provided with resource material to identify the problems and will replace the vulnerable Java with secure code to protect against attacks.