Set of pre-generated pwn.college challenges

Overview

pwn.college

Set of pre-generated pwn.college challenges!

Setup

Replace <INSTANCE> with your instance's name:

./generate_sql.sh | docker exec -i <INSTANCE>_db mysql -uctfd -pctfd -Dctfd

Warning

Currently there is an issue where docker image names can only be 32 bytes long in the pwn.college infastructure. To remedy this:

docker tag pwncollege/pwncollege_challenge pwncollege_challenge
docker tag pwncollege/pwncollege_kernel_challenge pwncollege_kernel_challenge
You might also like...
Teach the C programming language using a collection of super beginner friendly tutorials and challenges.
Teach the C programming language using a collection of super beginner friendly tutorials and challenges.

TeachMeCLikeIm5 You are welcome to contribute to this repo. See the CONTRIBUTING.md for more info 📜 About this repo 📜 A collection of super beginner

Capture the flag challenges

CTF-Challenge Description Internet technology will dominate the future world, but at the same time new cyber security challenges emerge. Through Techn

Repo of [email protected] 2021 Challenges and deployment

[email protected] 2021 The challenges were made by the following contributors: dbsqwerty Ocean MiloTruck Wealthyturtle Lord_Idiot daniellimws lampardnk samuzora

A port of the Linux x86 IOLI crackme challenges to x86-64

This is a port of the original Linux x86 IOLI crackme binaries to x86-64. The original set of IOLI crackmes can be found here: https://github.com/Maij

Bank of challenges & solutions from r/dailyprogrammer for people learning to program

DailyProgrammerChallenges This repo contains all of the challenges from r/dailyprogrammer and also scripts used to pull challenges from the subreddit

A project demonstrating how to train your own gesture recognition deep learning pipeline. We start with a pre-trained detection model, repurpose it for hand detection using Transfer Learning Toolkit 3.0, and use it together with the purpose-built gesture recognition model. Once trained, we deploy this model on NVIDIA® Jetson™ using Deepstream SDK.
Pre-configured LLVM and ANTLR4 for C++

LLVM + ANTLR4 Starter Project Starter project for ANTLR4 and LLVM C++ project. Prerequisite LLVM 12 Java (for ANTLR4) git Install prerequisite librari

ThatOS64 is for the youtube series on 64-Bit Kernel Development pre-loaded by the EFI
ThatOS64 is for the youtube series on 64-Bit Kernel Development pre-loaded by the EFI

Step by Step Tutorials on how to code a 64-Bit loader and kernel for OS Development NOTES Starting with CODE5, the resolution from the EFI file sets t

This package provides localization in a pre-built map using ICP and odometry (or the IMU measurements).
This package provides localization in a pre-built map using ICP and odometry (or the IMU measurements).

Localization using ICP in a known map Overview This package localizes the lidar sensor in a given map using the ICP algorithm. It subscribes to lidar

A pre-boot execution environment for Apple boards built on top of checkra1n

archOS A pre-boot execution environment for Apple boards built on top of checkra1n - currently based off the Checkra1n/PongoOS Repo. Building on macOS

🦴 Takes base Rokoko animation export and uses my pre-made bone remapping to map to the default UE4 skeleton.
🦴 Takes base Rokoko animation export and uses my pre-made bone remapping to map to the default UE4 skeleton.

🦴 RokokoToUE4-pipeline 🦴 Takes base rokoko animation export and uses my pre-made bone remapping to map to the default UE4 skeleton. How to use: Down

The repository contains some examples of pre-trained SNN (Spiking Neural Network) models.

About the Project The repository contains some examples of pre-trained SNN (Spiking Neural Network) models. The models were trained using the MM-BP tr

Manticore - iOS Jailbreak based on cicuta virosa by ModernPwner and Pattern F's pre-jailbreak's amfid bypass.

Manticore Jailbreak Manticore Jailbreak is a Free and Open-Source Jailbreak utility developed by the Manticore Team. Current compatibility: iOS 14.0 -

pre-built coreboot images and documentation on how to flash them for Thinkpad Laptops
pre-built coreboot images and documentation on how to flash them for Thinkpad Laptops

Skulls - not quite Heads pre-built coreboot images with an easy installation process Skulls makes it easy to install an unlocked, up-to-date and easy

A CLI program that helps you find classes and plan pre-requisites. Written in C++ and Python.

CourseHelper A CLI program created to help you prepare for course registration. Note: At the moment, this project is built specifically for other UCLA

Pre-compiled builds for CVE-2021-4034

CVE-2021-4034 Precompiled builds for CVE-2021-4034. Of course you shouldn't trust precompiled builds :) This release works slightly different: first a

Implementation of Univaraint Linear Regresion (Supervised Machine Learning) in c++. With a data set (training set) you can predict outcomes.

Linear-Regression Implementation of Univaraint Linear Regresion (Supervised Machine Learning) in c++. With a data set (training set) you can predict o

oZKS (Ordered Zero-Knowledge Set) is a library that provides an implementation of an Ordered (and Append Only) Zero-Knowledge Set.

Ordered Zero-Knowledge Set - oZKS Introduction oZKS is a library that provides an implementation of an Ordered (and Append Only) Zero Knowledge Set. A

Comments
  • Unintended solution to babyrev_level8_teaching1

    Unintended solution to babyrev_level8_teaching1

    Not sure if it is appropriate to report here but it is possible to completely bypass the license checking on babyrev_level8_teaching1 due to the first byte of the EXPECTED_RESULT variable being \x00.

    PoC

    The following works with any string 12 chars or less, just as long as some data is consumed via the unix socket.

    $ ./babyrev_level8_teaching1 & echo abcdefghijkl | socat -t 2 ./knfjs -
    [1] 236570
    ###
    ### Welcome to ./babyrev_level8_teaching1!
    ###
    
    This license verifier software will allow you to read the flag.
    However, before you can do so, you must verify that you are licensed to read flag files!
    This program consumes a license key over some communication channel that you must figure out.
    You must also figure out (by reverse engineering this program) what that license key is.
    Providing the correct license key will net you the flag!
    Ready to receive your license key!
    This challenge takes input by reading it from a unix socket.
    You will need to understand what a unix socket is in Linux,
    and how to interact with one.
    The name of the unix socket that this specific challenge will listen on is "knfjs".
    The challenge has now read in the data it needs, after skipping some bytes
    to make things a bit more complicated! Specifically, it skipped 12 bytes.
    The data it read in (and that will now be mutated and checked) was:
    	0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    This challenge is now mangling your input using the "xor" mangler with key `0x090361`.
    This mangled your input, resulting in:
    	03 03 61 09 03 61 09 03 61 09 03 61 09 03 61 09 
    This challenge is now mangling your input using the "sort" mangler.
    This mangled your input, resulting in:
    	03 03 03 03 03 03 09 09 09 09 09 61 61 61 61 61 
    This challenge is now mangling your input using the "xor" mangler with key `0x03`.
    This mangled your input, resulting in:
    	00 00 00 00 00 00 0a 0a 0a 0a 0a 62 62 62 62 62 
    The mangling is done! The resulting bytes will be used for the final comparison
    For reference, the resulting data is:
    	00 00 00 00 00 00 0a 0a 0a 0a 0a 62 62 62 62 62 
    To verify that you input the correct license key, the program will compare this
    against the following expected result:
    	00 0b 09 10 1a 63 69 68 6d 73 72 70 77 76 75 7b 
    If those byte sequences match, you will get the flag! Let's see...
    Checking the received license key!
    Correct! Here is your flag:
    

    Cause

    In the custom cmp function, there is a logical flaw since the detection of null bytes is used to control the code path taken, however, if the EXPECTED_RESULT variable has a null byte in it then as long as the previous bytes matched, the check will pass even though the rest of the license is incorrect. In the case of babyrev_level8_teaching1 you can bypass the check altogether since the null byte is in the very first position.

    This might be clearer looking at the following code:

    long long cmp(char *a, char *b, unsigned __int64 n){
    
    	int i;
    
    	for (i = 0; i < n; i++){
    
    		if (a[i] != b[i])
    			return (unsigned int)(a[i] - b[i]);
    
    		if (!a[i] || !b[i])                     // if we get here and a[0] is \x00, we win
    			break;
    	}
    
    	// success
    	return 0;
    }
    

    Fix

    Since null bytes have a special semantic purpose in the cmp function, they should be avoided in the EXPECTED_RESULT variable for all binaries that use this function.

    opened by 0xb0bb 0
Owner
pwn.college
A white-belt to yellow-belt education platform from Arizona State University.
pwn.college
Libraries and tools to perform fully homomorphic encryption operations on an encrypted data set.

Fully Homomorphic Encryption (FHE) This repository contains open-source libraries and tools to perform fully homomorphic encryption (FHE) operations o

Google 2.9k Jan 7, 2023
台大 計算機安全 - Pwn 簡報、影片、作業題目 - Computer Security Fall 2019 @ CSIE NTU Taiwan

NTU Computer Security Fall 2019 - 台大 計算機安全 擔任台大大助教,與三週 Pwn 課程講師。 課程內容 Week 1: Binary Exploitation - Basic Slide: link Video: link Lab: bof stack buffe

yuan 290 Jan 3, 2023
Professor Terence Parr has taught us how to create a virtual machine Now it is time to pwn virtual machine

My First real world CTF Simple Virtual Machine Challenge description Professor Terence Parr has taught us how to create a virtual machine Now it is ti

null 1 Feb 17, 2022
Single-header header-only C++11 / C++14 / C++17 library for easily managing set of auto-generated type-safe flags.

Single-header header-only C++11 / C++14 / C++17 library for easily managing set of auto-generated type-safe flags. Quick start #include <bitflags/bitf

Marin Peko 76 Nov 22, 2022
COMPUTER ENGINEERING - SEM 3-8 College Assignments and PPTs

Contributors ✨ Thanks goes to these wonderful people (emoji key): Subham Agrawal ?? ✅ Pritesh Kumar Tripathi ?? ✅ Sakshi Jain ?? ✅ Krithikha Bala ?? ✅

Subham Agrawal 29 Aug 3, 2022
Champlain College Capstone Game 2021-22

fa21-capstone-2021-22-t03 Repository for Fall 2021 Capstone Prototype 1 Project --Git Standards-- Basic Etiquette Since the entire team is working in

null 3 Apr 2, 2022
ORE (OpenGL Rendering Engine) is a rendering engine developed for my college minor project assessment.

ORE (OPENGL RENDERING ENGINE) What is ORE? ORE(OpenGL Rendering Engine) is a rendering engine with great and easy to use UI that allows the user to lo

HARSHIT BARGUJAR 3 Sep 23, 2022
A bullet-hell shooter game made in C99 for my college project.

Kosmos A bullet-hell shooter game made in C99 for my college project. Building Linux Install requied libraries Ubuntu sudo apt install libasound2-dev

Siddharth Roy 19 Nov 1, 2022
StringCheese is a CTF tool to solve easy challenges automatically in many cases where a strings | grep is just not enough

StringCheese StringCheese is a script written in Python to extract CTF flags (or any other pattern with a prefix) automatically. It works like a simpl

Mathis HAMMEL 62 Nov 30, 2022
Open source release of challenges and other code used in the Hack-A-Sat 2 Qualifier in 2021.

Hack-a-Sat 2 Qualifier This repository contains the open source release for the Hack-a-Sat 2 qualifier from 2021. Released artifacts include: Source c

Cromulence 59 Sep 18, 2022