!HackTheCat Logo
AppSec is generally not taught well (if at all) and we can write better, more secure applications if we understand the approaches and techniques attackers will use to exploit solutions. This sample application allows you to attack (and fix up) common issues.
This is also a good practice application for those studying for security certifications such as Offensi's OSCP or AWAE.
This application is intended to teach and learn AppSec concepts and contains many security issues including some that will lead to RCE (Remote Code Execution).
Under no circumstances should this app be exposed directly to the internet or installed on a sensiti/network. If an attacker can access this site then it will be very easy for them to gain full access to the machine it is running on and potentially the network the machine is connected to.
This software is licensed under Creati Attribution-NonCommercial 4.0 International and as per the license:
TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITI, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
The disclaimer of warranties and limitation of liability provided
abo be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Spoiler alert! Skip this section if you want to find the issues yourself :)
This sample application contains many issues you can practice exploting and fixing up including:
* XSS (stored and reflected)
* different SQL Injection issues
* Weak session cookie options
* Weak encoding options
* LFI (Local File Inclusion)/RFI (Remote File Inclusion)
* RCE of node-serialize (0.4)
* RCE via Side Template Injection (SSTI) in of pug template engine (2.0.4)
* Unrestricted file upload
* Left over mock credentials file disco force
* IDOR (Indirect object reference)
* Poor and inconsistently implemented authentication approach
* Some crappy CSS/HTML hacks to a template I made..
Found something else? Awesome let me know :)
In the future I plan to add the following:
* Documentation/labs walking through issues
* Different levels of difficulty e.g. implementing naive and basic XSS filters
The database will be setup to contain the following two users:
* username: admin, password: pass (has access to admin panel options)
* username: user, password: pass
This application has been tested on Linux (Ubuntu) and Windows 10.
If you are not using the docker images you will need the following:
* Node (tested with v16.14.0 Ubuntu)
* MySQL (tested with 8.0.28-0ubuntu0.20.04.3 Ubuntu)
If you want to use Docker option well you'll ob need Docker and Python as well for some reason I dont understand which I think has something to do with Docker compose.
IMPORTANT! Again be careful where you install this site as it will be easy for an attacker to exploit it
This application is very simple and consists of:
* Node Express App using EJS template engine
* MySQL
You have two setup options:
* Docker (easiest but hardest to play with code)
* Manual
If you want to play and experiment with the code Manual setup will be your best option.
Linux users will probably need to prefix these commands with sudo unless you are running as root which you probably should not be.
1. Open a shell and na to where docker-compose.yaml lives is and run docker-compose up
1. Docker will download base images if you dont already have them already, copy src directory, copy .en file over any .env file you ha node packages and setup databse
1. Open a browser and go to and you should see a page like this:
!HackTheCat Site Image
1. docker-compose down will close it down
Note if you make changes to the code then you will need to rebuild the images so run docker-compose up --build
Manual setup has a few more steps but is pretty easy.
In this example we'll setup a database called hackthecat, a user to access this database and give them the password catsarebest.
1. First let's setup the database so login to mysql with sudo mysql
1. Create a database: CREATE DATABASE hackthecat;
1. Create a user: CREATE USER 'hackthecat'@'localhost' IDENTIFIED BY 'catsarebest';
1. Give the new user all pri to access the hackthecat database: GRANT ALL PRI ON hackthecat.* TO 'hackthecat'@'localhost';
1. Refresh the database pri with flush pri;
1. First we need to create a file called .env in /web which will tell the app how to conenct to the database. Take the following content (replacing the <..> bits with options you have used) and ensuring there are no <>'s in this file!:
The settings we discussed abo look like this:
1. Next go to /web directory
1. Run npm install
1. You'll get some warnings about components with high se issues which is expected as this app contains third party libs with known issues
1. Run node app to start the app
1. All being well you should now be able to access the app at (or whatever port you have set it to in .env file)
To learn more about appsec I recommend the following resources:
* OWASP
* Hacktricks
* Burp Accademy
* TCM Academy
* Ippsec Rocks
Original Idea and concept: Alex Mackey
Design Hacked/Adapted from (creati Attribution 3: )
HackTheCatLogo and Cat Bicycles logo produced and the awesome fi.
Bike Images from Pixabay (free stock photography and royalty-free stock media website):
*
*
开发语言:CSS
Star 数:8
该项目属于防护思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Hackthecat is a vulnerable node express/mysql app intended for teaching, demonstrating and practicing common security issues and defensive techniques. DO NOT INSTALL ON INTERNET FACING MACHINE OR SENSITIVE NETWORK展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | HackTheCat - Hackthecat is a vulnerable node express/mysql app |
| 所属分类 | 防护思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:12:50 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 221 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |