{"id":419,"date":"2026-04-06T02:38:04","date_gmt":"2026-04-06T02:38:04","guid":{"rendered":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/?page_id=419"},"modified":"2026-04-16T21:14:59","modified_gmt":"2026-04-16T21:14:59","slug":"homelab-projects","status":"publish","type":"page","link":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/homelab-projects\/","title":{"rendered":"Cybersecurity Home Lab: Web Application Security Testing Environment"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Overview<\/strong><\/h2>\n\n\n\n<p>This project showcases a hands-on cybersecurity home lab designed to simulate real-world environments for vulnerability scanning and web application security testing. The lab leverages containerized applications and industry-relevant security tools to practice identifying, analyzing, and understanding common vulnerabilities.<\/p>\n\n\n\n<p>The primary goal of this lab is to bridge the gap between theoretical knowledge and practical cybersecurity skills by creating a controlled environment for testing, troubleshooting, and security analysis.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">LAB SETUP<\/h2>\n\n\n\n<ul>\n<li><strong>Client System:<\/strong> MacBook Pro<\/li>\n\n\n\n<li><strong>Host System:<\/strong> Raspberry Pi (Docker Host &#8211; ARM 64)<\/li>\n\n\n\n<li><strong>Network:<\/strong> Local private lab environment<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Tools Used<\/h2>\n\n\n\n<ul>\n<li>Docker<\/li>\n\n\n\n<li>Docker Compose<\/li>\n\n\n\n<li>Portainer.io<\/li>\n\n\n\n<li>Pi-hole (DNS Filtering)<\/li>\n\n\n\n<li>Nessus Essentials<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Applications<\/h2>\n\n\n\n<ul>\n<li>OWASP Juice Shop (Port 3001)<\/li>\n\n\n\n<li>OWASP WebGoat (Port 8081)<\/li>\n\n\n\n<li>DVWA &#8211; Damn Vulnerable Web App (Port 8082)<\/li>\n\n\n\n<li>MariaDB (Backend database)<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">What I Did<\/h2>\n\n\n\n<ul>\n<li>Designed and deployed a multi-container lab environment using Docker Compose<\/li>\n\n\n\n<li>Configured inter-container networking between web applications and a database<\/li>\n\n\n\n<li>Managed and monitored services using Portainer<\/li>\n\n\n\n<li>Troubleshot real-world deployment issues:\n<ul>\n<li>Port conflicts<\/li>\n\n\n\n<li>ARM vs x86 image compatibility<\/li>\n\n\n\n<li>DNS resolution failures<\/li>\n\n\n\n<li>Container restart loops<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Performed vulnerability scanning using Nessus Essentials<\/li>\n\n\n\n<li>Conducted hands-on web application security testing using OWASP tools<\/li>\n\n\n\n<li>Successfully executed SQL Injection attacks against DVWA to extract database records<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Exploit Demonstration: SQL Injection<\/strong><\/h2>\n\n\n\n<p>During testing in DVWA, I exploited a classic SQL Injection vulnerability using the following input:<\/p>\n\n\n\n<p>&#8216; OR &#8216;1&#8217; =&#8217;1<\/p>\n\n\n\n<p>This payload bypassed application logic and forced the database to return all user records.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Impact:<\/strong><\/h3>\n\n\n\n<ul>\n<li>Authentication bypass<\/li>\n\n\n\n<li>Full database enumeration<\/li>\n\n\n\n<li>Exposure of sensitive user data<\/li>\n<\/ul>\n\n\n\n<p>This demonstrates how improper input validation and lack of parameterized queries can lead to critical security vulnerabilities.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"589\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-1024x589.png\" alt=\"\" class=\"wp-image-436\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-1024x589.png 1024w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-300x172.png 300w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-768x441.png 768w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-833x479.png 833w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5-192x110.png 192w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-5.png 1277w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Figure 1: Cyber Lab Stack Deployment in Portainer<\/strong><\/h2>\n\n\n\n<p>This view shows the deployed cybersecurity lab environment managed through Portainer. The stack includes multiple containerized services such as DVWA, OWASP Juice Shop, WebGoat, and a MariaDB backend. Each service is running within a Docker Compose stack, demonstrating container orchestration and service communication.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"1024\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-709x1024.png\" alt=\"\" class=\"wp-image-431\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-709x1024.png 709w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-208x300.png 208w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-133x192.png 133w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image.png 763w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Figure 2: Docker Compose Configuration<\/strong><\/h3>\n\n\n\n<p>The Docker Compose file defines all services in the lab, including vulnerable web applications and the MariaDB backend. It includes:<\/p>\n\n\n\n<ul>\n<li>Service definitions<\/li>\n\n\n\n<li>Port mappings<\/li>\n\n\n\n<li>Environment variables<\/li>\n\n\n\n<li>Health checks and dependencies<\/li>\n<\/ul>\n\n\n\n<p>This reflects real-world infrastructure-as-code practices used in modern environments.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"879\" height=\"775\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM.png\" alt=\"\" class=\"wp-image-422\" style=\"width:551px;height:auto\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM.png 879w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM-300x265.png 300w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM-768x677.png 768w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM-833x734.png 833w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-05-at-12.00.42\u202fAM-192x169.png 192w\" sizes=\"(max-width: 879px) 100vw, 879px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Figure 3: OWASP Juice Shop<\/strong><\/h3>\n\n\n\n<p>Juice Shop simulates a modern vulnerable web application and includes common security flaws such as:<\/p>\n\n\n\n<ul>\n<li>Injection vulnerabilities<\/li>\n\n\n\n<li>Broken authentication<\/li>\n\n\n\n<li>Sensitive data exposure<\/li>\n<\/ul>\n\n\n\n<p>It serves as a realistic target for web application testing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"793\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1.png\" alt=\"\" class=\"wp-image-432\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1.png 902w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1-300x264.png 300w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1-768x675.png 768w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1-833x732.png 833w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/image-1-192x169.png 192w\" sizes=\"(max-width: 902px) 100vw, 902px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Figure 4: OWASP WebGoat<\/strong><\/h3>\n\n\n\n<p>WebGoat provides structured, lesson-based training on secure coding and vulnerability exploitation, reinforcing theoretical concepts through guided exercises.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1068\" height=\"769\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM.png\" alt=\"\" class=\"wp-image-446\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM.png 1068w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM-300x216.png 300w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM-1024x737.png 1024w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM-768x553.png 768w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM-833x600.png 833w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-07-at-7.39.05\u202fPM-192x138.png 192w\" sizes=\"(max-width: 1068px) 100vw, 1068px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Figure 5: DVWA SQL Injection Exploit<\/strong><\/h3>\n\n\n\n<p>DVWA was used to demonstrate hands-on exploitation of SQL Injection vulnerabilities. The lab environment allowed safe testing of attack techniques and analysis of application behavior under malicious input.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-1024x546.png\" alt=\"\" class=\"wp-image-424\" srcset=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-1024x546.png 1024w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-300x160.png 300w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-768x409.png 768w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-1536x819.png 1536w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-833x444.png 833w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM-192x102.png 192w, https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-content\/uploads\/sites\/38223\/2026\/04\/Screenshot-2026-04-04-at-11.43.54\u202fPM.png 1904w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Figure 6: Nessus Scan Results<\/strong><\/h3>\n\n\n\n<p>Nessus Essentials was used to scan the lab network and identify:<\/p>\n\n\n\n<ul>\n<li>Open ports<\/li>\n\n\n\n<li>Running services<\/li>\n\n\n\n<li>Potential vulnerabilities<\/li>\n<\/ul>\n\n\n\n<p>This simulates how security teams assess environments in real-world scenarios.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Key Skills Demonstrated<\/strong><\/h2>\n\n\n\n<ul>\n<li>Containerization and deployment using Docker<\/li>\n\n\n\n<li>Infrastructure design using Docker Compose<\/li>\n\n\n\n<li>Container management using Portainer<\/li>\n\n\n\n<li>Network troubleshooting and DNS configuration<\/li>\n\n\n\n<li>Vulnerability scanning and analysis using Nessus<\/li>\n\n\n\n<li>Web application security testing (OWASP Top 10)<\/li>\n\n\n\n<li>SQL Injection exploitation<\/li>\n\n\n\n<li>Debugging real-world system and deployment issues<\/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\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>This homelab provided hands-on experience in building, managing, and securing a containerized environment. By deploying vulnerable applications and actively exploiting them, I gained practical insight into how security weaknesses are identified and abused in real-world systems.<\/p>\n\n\n\n<p>This project demonstrates not only technical knowledge, but also the ability to troubleshoot complex issues, design functional environments, and apply offensive security techniques in a controlled setting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview This project showcases a hands-on cybersecurity home lab designed to simulate real-world environments for vulnerability scanning and web application security testing. The lab leverages containerized applications and industry-relevant security tools to practice identifying, analyzing, and understanding common vulnerabilities. The primary goal of this lab is to bridge the gap between theoretical knowledge and practical &hellip; <a href=\"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/homelab-projects\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Cybersecurity Home Lab: Web Application Security Testing Environment<\/span><\/a><\/p>\n","protected":false},"author":30417,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/pages\/419"}],"collection":[{"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/users\/30417"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/comments?post=419"}],"version-history":[{"count":5,"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/pages\/419\/revisions"}],"predecessor-version":[{"id":463,"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/pages\/419\/revisions\/463"}],"wp:attachment":[{"href":"https:\/\/sites.wp.odu.edu\/eriksorto-portfolio\/wp-json\/wp\/v2\/media?parent=419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}