Ninju

🐧

Intro to Programming Languages

15 / 234 9370 / 32002


Commands

Time of First Successful Submission: 2026-03-22 04:20:54

Command Arguments

Time of First Successful Submission: 2026-03-22 04:23:07

Command History

Time of First Successful Submission: 2026-03-22 04:23:43

The Root Path

Time of First Successful Submission: 2026-03-22 04:32:12

Absolute Paths

Time of First Successful Submission: 2026-03-22 04:33:23

Changing position

Time of First Successful Submission: 2026-03-22 04:36:11

Changing to an Absolute Path

Time of First Successful Submission: 2026-03-22 04:38:18

Relative Paths

Time of First Successful Submission: 2026-03-22 04:41:10

Cat

Time of First Successful Submission: 2026-03-23 02:33:30

Ls

Time of First Successful Submission: 2026-03-23 02:50:22

Ls All

Time of First Successful Submission: 2026-03-23 02:56:39

Find

Time of First Successful Submission: 2026-03-23 03:10:20

Piping Echo

Time of First Successful Submission: 2026-03-23 05:00:32

Piping Stdout

Time of First Successful Submission: 2026-03-23 05:02:11

Piping Stdin

Time of First Successful Submission: 2026-03-23 05:09:10


Start Here

12 / 12 1827 / 43378


Using the Terminal

Time of First Successful Submission: 2026-03-22 03:37:10

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-22 03:41:52

Using the GUI Desktop

Time of First Successful Submission: 2026-03-22 03:44:59

Pasting into the Desktop

Time of First Successful Submission: 2026-03-22 03:46:51

Restarting Challenges

Time of First Successful Submission: 2026-03-22 03:57:53

Challenge Programs

Time of First Successful Submission: 2026-03-22 04:04:03

The Flag File

Time of First Successful Submission: 2026-03-22 04:07:46

Using Privileged Mode

Time of First Successful Submission: 2026-03-22 04:12:03

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-22 04:16:07

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-22 04:16:45


Linux Luminarium

128 / 128 2605 / 32411


Intro to Commands

Time of First Successful Submission: 2026-03-22 04:20:54

Intro to Arguments

Time of First Successful Submission: 2026-03-22 04:23:07

Command History

Time of First Successful Submission: 2026-03-22 04:23:43

The Root

Time of First Successful Submission: 2026-03-22 04:32:12

Program and absolute paths

Time of First Successful Submission: 2026-03-22 04:33:23

Position thy self

Time of First Successful Submission: 2026-03-22 04:36:11

Position elsewhere

Time of First Successful Submission: 2026-03-22 04:38:18

implicit relative paths, from /

Time of First Successful Submission: 2026-03-22 04:41:10

explicit relative paths, from /

Time of First Successful Submission: 2026-03-22 04:42:35

implicit relative path

Time of First Successful Submission: 2026-03-22 04:43:24

home sweet home

Time of First Successful Submission: 2026-03-22 04:49:23

cat: not the pet, but the command!

Time of First Successful Submission: 2026-03-23 02:33:30

catting absolute paths

Time of First Successful Submission: 2026-03-23 02:34:32

more catting practice

Time of First Successful Submission: 2026-03-23 02:43:31

grepping for a needle in a haystack

Time of First Successful Submission: 2026-03-23 02:46:14

comparing files

Time of First Successful Submission: 2026-03-23 02:49:29

listing files

Time of First Successful Submission: 2026-03-23 02:50:22

touching files

Time of First Successful Submission: 2026-03-23 02:51:40

removing files

Time of First Successful Submission: 2026-03-23 02:54:00

moving files

Time of First Successful Submission: 2026-03-23 02:55:06

copying files

Time of First Successful Submission: 2026-03-23 02:55:55

hidden files

Time of First Successful Submission: 2026-03-23 02:56:39

An Epic Filesystem Quest

Time of First Successful Submission: 2026-03-23 03:06:23

making directories

Time of First Successful Submission: 2026-03-23 03:07:27

finding files

Time of First Successful Submission: 2026-03-23 03:10:20

linking files

Time of First Successful Submission: 2026-03-23 03:21:12

Learning From Documentation

Time of First Successful Submission: 2026-03-23 03:24:40

Learning Complex Usage

Time of First Successful Submission: 2026-03-23 03:28:19

Reading Manuals

Time of First Successful Submission: 2026-03-23 03:31:27

Searching Manuals

Time of First Successful Submission: 2026-03-23 03:44:24

Searching For Manuals

Time of First Successful Submission: 2026-03-23 03:46:56

Helpful Programs

Time of First Successful Submission: 2026-03-23 03:49:59

Help for Builtins

Time of First Successful Submission: 2026-03-23 03:52:56

Matching with *

Time of First Successful Submission: 2026-03-23 04:00:02

Matching with ?

Time of First Successful Submission: 2026-03-23 04:02:29

Matching with []

Time of First Successful Submission: 2026-03-23 04:06:21

Matching paths with []

Time of First Successful Submission: 2026-03-23 04:07:21

Multiple globs

Time of First Successful Submission: 2026-03-23 04:12:07

Mixing globs

Time of First Successful Submission: 2026-03-23 04:26:26

Exclusionary globbing

Time of First Successful Submission: 2026-03-23 04:29:11

Tab completion

Time of First Successful Submission: 2026-03-23 04:31:20

Multiple options for tab completion

Time of First Successful Submission: 2026-03-23 04:32:36

Tab completion on commands

Time of First Successful Submission: 2026-03-23 04:33:28

Redirecting output

Time of First Successful Submission: 2026-03-23 05:00:32

Redirecting more output

Time of First Successful Submission: 2026-03-23 05:02:11

Appending output

Time of First Successful Submission: 2026-03-23 05:03:36

Redirecting errors

Time of First Successful Submission: 2026-03-23 05:06:17

Redirecting input

Time of First Successful Submission: 2026-03-23 05:09:10

Grepping stored results

Time of First Successful Submission: 2026-03-23 05:16:05

Grepping live output

Time of First Successful Submission: 2026-03-23 05:17:31

Grepping errors

Time of First Successful Submission: 2026-03-23 05:20:35

Filtering with grep -v

Time of First Successful Submission: 2026-03-23 05:21:50

Filtering with sed

Time of First Successful Submission: 2026-03-23 05:35:10

Duplicating piped data with tee

Time of First Successful Submission: 2026-03-23 05:40:43

Process substitution for input

Time of First Successful Submission: 2026-03-23 05:52:55

Writing to multiple programs

Time of First Successful Submission: 2026-03-23 06:19:20

Split-piping stderr and stdout

Time of First Successful Submission: 2026-03-23 07:00:03

Named pipes

Time of First Successful Submission: 2026-03-23 07:07:57

Printing Variables

Time of First Successful Submission: 2026-03-23 10:20:25

Setting Variables

Time of First Successful Submission: 2026-03-23 15:36:15

Multi-word Variables

Time of First Successful Submission: 2026-03-23 15:37:23

Exporting Variables

Time of First Successful Submission: 2026-03-23 15:41:28

Printing Exported Variables

Time of First Successful Submission: 2026-03-23 15:42:46

Storing Command Output

Time of First Successful Submission: 2026-03-23 15:46:55

Reading Input

Time of First Successful Submission: 2026-03-23 16:12:19

Reading Files

Time of First Successful Submission: 2026-03-23 16:19:47

Translating characters

Time of First Successful Submission: 2026-03-23 16:30:08

Deleting characters

Time of First Successful Submission: 2026-03-23 16:34:39

Deleting newlines

Time of First Successful Submission: 2026-03-23 16:36:47

Extracting the first lines with head

Time of First Successful Submission: 2026-03-23 16:40:38

Extracting specific sections of text

Time of First Successful Submission: 2026-03-23 16:51:36

Sorting data

Time of First Successful Submission: 2026-03-23 17:19:07

Listing Processes

Time of First Successful Submission: 2026-03-23 17:57:41

Killing Processes

Time of First Successful Submission: 2026-03-23 17:59:18

Interrupting Processes

Time of First Successful Submission: 2026-03-23 18:00:45

Killing Misbehaving Processes

Time of First Successful Submission: 2026-03-23 18:06:11

Suspending Processes

Time of First Successful Submission: 2026-03-23 18:07:08

Resuming Processes

Time of First Successful Submission: 2026-03-23 18:07:37

Backgrounding Processes

Time of First Successful Submission: 2026-03-23 18:11:21

Foregrounding Processes

Time of First Successful Submission: 2026-03-23 18:14:05

Starting Backgrounded Processes

Time of First Successful Submission: 2026-03-23 18:14:27

Process Exit Codes

Time of First Successful Submission: 2026-03-23 18:15:38

Becoming root with su

Time of First Successful Submission: 2026-03-23 18:26:20

Other users with su

Time of First Successful Submission: 2026-03-23 18:27:18

Cracking passwords

Time of First Successful Submission: 2026-03-23 18:36:19

Using sudo

Time of First Successful Submission: 2026-03-23 18:42:40

Changing File Ownership

Time of First Successful Submission: 2026-03-23 19:39:39

Groups and Files

Time of First Successful Submission: 2026-03-23 19:40:41

Fun With Groups Names

Time of First Successful Submission: 2026-03-23 19:42:59

Changing Permissions

Time of First Successful Submission: 2026-03-23 19:44:31

Executable Files

Time of First Successful Submission: 2026-03-23 19:46:10

Permission Tweaking Practice

Time of First Successful Submission: 2026-03-23 20:39:39

Permissions Setting Practice

Time of First Successful Submission: 2026-03-23 20:48:54

The SUID Bit

Time of First Successful Submission: 2026-03-23 20:55:17

Chaining with Semicolons

Time of First Successful Submission: 2026-03-25 02:37:51

Building on Success

Time of First Successful Submission: 2026-03-25 02:39:38

Handling Failure

Time of First Successful Submission: 2026-03-25 02:40:26

Your First Shell Script

Time of First Successful Submission: 2026-03-25 03:01:30

Redirecting Script Output

Time of First Successful Submission: 2026-03-25 03:04:24

Executable Shell Scripts

Time of First Successful Submission: 2026-03-25 03:06:50

Understanding Shebangs

Time of First Successful Submission: 2026-03-25 03:24:59

Scripting with Arguments

Time of First Successful Submission: 2026-03-25 03:27:35

Scripting with Conditionals

Time of First Successful Submission: 2026-03-25 03:30:20

Scripting with Default Cases

Time of First Successful Submission: 2026-03-25 03:31:58

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-03-25 03:35:54

Reading Shell Scripts

Time of First Successful Submission: 2026-03-25 03:39:30

Launching Screen

Time of First Successful Submission: 2026-03-26 00:50:09

Detaching and Attaching

Time of First Successful Submission: 2026-03-26 00:52:28

Finding Sessions

Time of First Successful Submission: 2026-03-26 00:54:21

Switching Windows

Time of First Successful Submission: 2026-03-26 00:56:44

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-03-26 00:59:34

Switching Windows (tmux)

Time of First Successful Submission: 2026-03-26 01:03:23

The PATH Variable

Time of First Successful Submission: 2026-03-26 01:09:34

Setting PATH

Time of First Successful Submission: 2026-03-26 01:11:46

Finding Commands

Time of First Successful Submission: 2026-03-26 01:13:23

Adding Commands

Time of First Successful Submission: 2026-03-26 02:03:34

Hijacking Commands

Time of First Successful Submission: 2026-03-26 02:26:43

Bashrc Backdoor

Time of First Successful Submission: 2026-03-26 03:11:34

Sniffing Input

Time of First Successful Submission: 2026-03-27 00:14:54

Overshared Directories

Time of First Successful Submission: 2026-03-27 01:00:43

Tricky Linking

Time of First Successful Submission: 2026-03-27 02:00:32

Sniffing Process Arguments

Time of First Successful Submission: 2026-03-27 02:12:05

Snooping on Configurations

Time of First Successful Submission: 2026-03-27 02:20:36

The Fork Bomb

Time of First Successful Submission: 2026-03-27 02:53:04

Disk-Space Doomsday

Time of First Successful Submission: 2026-03-27 03:24:42

rm -rf /

Time of First Successful Submission: 2026-03-27 03:36:17

Life after rm -rf /

Time of First Successful Submission: 2026-03-27 03:48:30

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-03-28 00:59:42


Computing 101

50 / 94 5807 / 21536


Your First Register

Time of First Successful Submission: 2026-03-28 01:44:22

Your First Syscall

Time of First Successful Submission: 2026-03-28 01:47:37

Exit Codes

Time of First Successful Submission: 2026-03-28 01:51:18

Building Executables

Time of First Successful Submission: 2026-03-28 23:36:14

Moving Between Registers

Time of First Successful Submission: 2026-03-28 23:51:43

Loading From Memory

Time of First Successful Submission: 2026-03-29 01:46:36

More Loading Practice

Time of First Successful Submission: 2026-03-29 01:47:28

Dereferencing Pointers

Time of First Successful Submission: 2026-03-29 01:54:11

Dereferencing Yourself

Time of First Successful Submission: 2026-03-29 02:04:39

Dereferencing with Offsets

Time of First Successful Submission: 2026-03-29 02:09:09

Stored Addresses

Time of First Successful Submission: 2026-03-29 02:13:35

Double Dereference

Time of First Successful Submission: 2026-03-29 02:20:13

The Stack

Time of First Successful Submission: 2026-03-29 02:24:15

Stack Offsets

Time of First Successful Submission: 2026-03-29 02:26:35

Program Arguments on the Stack

Time of First Successful Submission: 2026-03-29 02:29:07

Popping From the Stack

Time of First Successful Submission: 2026-03-29 02:32:07

Disassembling Programs

Time of First Successful Submission: 2026-03-29 21:15:48

Tracing Syscalls

Time of First Successful Submission: 2026-03-29 21:21:09

Starting GDB

Time of First Successful Submission: 2026-03-30 00:40:10

Quitting GDB

Time of First Successful Submission: 2026-03-30 00:41:29

Starting Programs in GDB

Time of First Successful Submission: 2026-03-30 00:47:35

Disassembling in GDB

Time of First Successful Submission: 2026-03-30 00:48:40

Stepping Through Instructions

Time of First Successful Submission: 2026-03-30 00:50:45

Reading Register Values

Time of First Successful Submission: 2026-03-30 00:51:58

Popping Stack Values

Time of First Successful Submission: 2026-03-30 00:53:53

Examining Memory

Time of First Successful Submission: 2026-03-30 00:56:33

Examining Stack Pointers

Time of First Successful Submission: 2026-03-30 01:00:21

Cooperative Debugging

Time of First Successful Submission: 2026-03-30 01:13:04

Writing Output

Time of First Successful Submission: 2026-03-30 02:02:54

Chaining Syscalls

Time of First Successful Submission: 2026-03-30 02:07:04

Writing Strings

Time of First Successful Submission: 2026-03-30 02:10:51

Reading Data

Time of First Successful Submission: 2026-03-30 02:23:32

Opening Files

Time of First Successful Submission: 2026-03-30 03:02:36

Hardcoding the Filename

Time of First Successful Submission: 2026-03-30 03:11:36

Comparing Values

Time of First Successful Submission: 2026-03-31 01:33:59

Comparing Characters

Time of First Successful Submission: 2026-04-01 05:57:27

Conditional Control Flow

Time of First Successful Submission: 2026-04-01 06:06:24

Comparing Strings

Time of First Successful Submission: 2026-04-01 06:11:13

Reverse the Password

Time of First Successful Submission: 2026-04-01 06:26:46

Conditionals Without Conditionals

Time of First Successful Submission: 2026-04-02 21:33:48

Looping

Time of First Successful Submission: 2026-04-02 23:29:57

Reverse the Calculation

Time of First Successful Submission: 2026-04-03 00:20:03

Reverse the Reverse

Time of First Successful Submission: 2026-04-03 00:21:53

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-04-03 00:46:57

Loops on Data

Time of First Successful Submission: 2026-04-03 01:47:48

set-register

Time of First Successful Submission: 2026-04-03 02:18:17

set-multiple-registers

Time of First Successful Submission: 2026-04-03 02:25:32

add-to-register

Time of First Successful Submission: 2026-04-03 02:27:28

linear-equation-registers

Time of First Successful Submission: 2026-04-03 02:35:52

integer-division

Time of First Successful Submission: 2026-04-04 20:38:49


GCA CTF

12 / 104 2060 / 43655


Using the Terminal

Time of First Successful Submission: 2026-03-22 03:37:10

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-22 03:41:52

Using the GUI Desktop

Time of First Successful Submission: 2026-03-22 03:44:59

Pasting into the Desktop

Time of First Successful Submission: 2026-03-22 03:46:51

Connecting over SSH

Time of First Successful Submission: 2026-03-22 03:52:09

Restarting Challenges

Time of First Successful Submission: 2026-03-22 03:57:53

Getting Help

Time of First Successful Submission: 2026-03-22 04:01:39

Challenge Programs

Time of First Successful Submission: 2026-03-22 04:04:03

The Flag File

Time of First Successful Submission: 2026-03-22 04:07:46

Using Privileged Mode

Time of First Successful Submission: 2026-03-22 04:12:03

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-22 04:16:07

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-22 04:16:45