Secure Coding - C/C++ Cyber Range

30 minutes

The Labs

Train hands-on

  • Secure Coding C++ 3: Buffer Overflows

    30 minutes
    Buffer overflows are one of the simplest and most common programming errors in C++ code. This lab demonstrates several ways that a buffer overflow vulnerability can be introduced into code, how they can be exploited, and how to correct them.
  • Secure Coding C++ 1: Introduction to cppcheck

    cppcheck is a static code analysis tool for C++ code that tests for a wide number of potential vulnerabilities and other errors. This lab demonstrates some of the basic functionality and use of cppcheck.
  • Secure Coding C++ 2: Control Flow Analysis in C++

    A variety of different errors can affect the execution flow of code and its eventual result. This lab demonstrates the use of a control flow analysis tool for tracking the flow of C++ code and identifying these errors.
  • Secure Coding C++ 4: Integer Overflows & Underflows

    Integer overflow and underflow vulnerabilities are created by unsafe typecasting between different integer variable types. This lab demonstrates code containing these vulnerabilities, how the vulnerabilities can be exploited, and how to correct them.
  • Secure Coding C++ 6: XPath Injection

    XPath makes it possible to programmatically access data stored within an XML document. This lab demonstrates how poorly-designed XPath queries can be exploited and corrected.
  • Secure Coding C++ 5: Format String Vulnerabilities

    Format string specifiers are useful for building strings using variables of other types. However, if they are misused, they can have unexpected results or open up a program to exploitation. This lab demonstrates some common format string mistakes, and, when applicable, how they can be exploited.
  • Secure Coding C++ 8: Pointer Management

    C++ pointers contain memory addresses and are used as a reference to arrays and other object types. This lab demonstrates some of the common mistakes made using pointers in C++.
  • Secure Coding C++ 7: Type Management

    C++ has a number of different variable types and ways of using them. This lab explores some of the ways that types and functions can be misused.
  • Secure Coding C++ 9: Sensitive Data Disclosure

    Applications are frequently designed to process and protect sensitive information. This lab explores some of the ways that logical or implementation errors can unintentionally expose this data.
  • Secure Coding C++ 10: Poor Error Handling

    A variety of different factors can cause low-level functions and other code to fail. This lab demonstrates some ways in which errors in error handling can make code execution unpredictable or exploitable.

Plans & pricing

Infosec Skills Personal

$299 / year

  • 190+ role-guided learning paths (e.g., Ethical Hacking, Threat Hunting)
  • 100s of hands-on labs in cloud-hosted cyber ranges
  • Custom certification practice exams (e.g., CISSP, Security+)
  • Skill assessments
  • Infosec peer community support

Infosec Skills Teams

$799 per license / year

  • Team administration and reporting
  • Dedicated client success manager
  • Single sign-on (SSO)
    Easily authenticate and manage your learners by connecting to any identity provider that supports the SAML 2.0 standard.
  • Integrations via API
    Retrieve training performance and engagement metrics and integrate learner data into your existing LMS or HRS.
  • 190+ role-guided learning paths and assessments (e.g., Incident Response)
  • 100s of hands-on labs in cloud-hosted cyber ranges
  • Create and assign custom learning paths
  • Custom certification practice exams (e.g., CISSP, CISA)
  • Optional upgrade: Guarantee team certification with live boot camps

Learn about scholarships and financing with

Affirm logo

Unlock 7 days of free training

  • 1,400+ hands-on courses and labs
  • Certification practice exams
  • Skill assessments