Skip to content

Commit

Permalink
clean up of existing write-ups, modified contribuion standard
Browse files Browse the repository at this point in the history
  • Loading branch information
cabreraalex committed Apr 14, 2014
1 parent 17ee133 commit 03bb6e6
Show file tree
Hide file tree
Showing 12 changed files with 32 additions and 40 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ CTFs are computer security/hacking competitions which generally consist of parti

###Example

A very simple type of CTF challenge is looking at the source code of websites or programs to find flags and/or hints. For example, can you find the flag hidden on this page?
A very simple type of CTF challenge consists of looking at the source code of websites or programs to find flags and/or hints. For example, can you find the flag hidden on this page?

<!-- flag: 2_l33t_4_M3 -->

##Using These Docs

These docs are organized broadly along the lines by which CTF tasks are organized. Inside each folder is a README like this one explaining the basics of the technology and what the tasks generally involve. Alongside these READMES are folders with more information regarding specific technologies and topics.
These docs are organized broadly along the lines by which CTF tasks are organized. Inside each folder in the topics section is a README like this one explaining the basics of the technology and what the tasks generally involve. Alongside these READMES are folders with more information regarding specific technologies and topics. Many of these articles link to the [tools folder](tools), where more detailed explanations can be found for tehcnologies used throughout CTF competitions.

The best way to use these docs is to participate in an actual CTF! Join a CTF or attempt some old tasks and try to solve them. Use the information in this repository to get you started with finding some flags. If you feel like there is insufficient information to help you solve a task, bring up an issue on this repository!
The best way to use these docs is to participate in an actual CTF! Join a CTF or attempt some old tasks and try to solve them. Use the information in this repository to get you started with finding some flags. If you feel like there is insufficient information to help you solve a task, bring up an issue on this repository and someone can try to clarify it.

###Moving On

Expand Down
4 changes: 2 additions & 2 deletions contributing/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#Contributing

The general organization for this repository is `topic/tech`. For example a page for HTTP would be `web/http/README.md` while RSA would go in `crytography/rsa/README.md`.
The general organization for this repository is `topicname/tech` or `tools/tool`. For example a page for HTTP would be `web/http/README.md` while RSA would go in `crytography/rsa/README.md`.

**Check the EXAMPLE.md file for a general overview of topic organization!** Try to stick to that model unless you find it ugly and/or non-semantic.

The first introduction README's in the categories (e.g. Cryptography) will most likely not follow the EXAMPLE.md, and will have their own structure to accomodate a more broad overview of the subjects.
The first overarching topic README's (e.g. Cryptography) will most likely not follow the EXAMPLE.md, and will have their own structure to accomodate a more broad overview of the subjects.
11 changes: 2 additions & 9 deletions contributing/TECH_EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,6 @@ Now that the topic has been detailed extensively, you can add [examples of where

##Sources/See More

After citing sources above, you should cite them in this area, on top of having them linked in the text.
For this article the citations would go as follows, in order of appearance:
If you used any other sources that you did not link above, here is the place to add them:

[Wikipedia on Wikipedia](https://en.wikipedia.org/wiki/Wikipedia)

[Mozilla and Public Key Cryptography](https://developer.mozilla.org/en-US/docs/Introduction_to_Public-Key_Cryptography)

[Writing a Wikipedia Article](https://en.wikipedia.org/wiki/Wikipedia:Starting_an_article)

[Good Articles on Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Good_articles)
[Github Markdown](https://help.github.com/articles/github-flavored-markdown)
3 changes: 3 additions & 0 deletions tools/bash/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Bourne-again Shell

Bash is the most common and prolific unix shell, and is now shipped by default on almost all Linux distributions and OSX
8 changes: 3 additions & 5 deletions tools/terminal/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# Terminal

A terminal is where you will be spending a lot of time doing all sorts of stuff.

*Todo: shells, scripts ?*
A terminal is the window where you can access multiple command-line interfaces, from the typical Bash shell to Python interpreter. Which emulator you choose is not very pertinent to CTFs, but if you are on windows you will have to go out of your way to find one.

## Linux

Luckily, all flavors of Linux and OSX come with a terminal built-in and you don't have to do much setup.
Luckily, all flavors of Linux and OSX come with a terminal built-in. It is usually found under applications and you can instantly access most command line tools from it.

## Windows

There are quite a few emulators available for Windows but one that is definitely worth checking out is [Cmder](https://bliker.github.io/cmder/). It is not an emulator per se but a package of 3rd party applications and you can add stuff like [GnuWin32](https://gnuwin32.sourceforge.net/) to get some of the cool Linux commands on windows.
Since Windows is not based off of the same system as Linux and Mac, it has to rely on emulators to run shell commands. There are quite a few emulators available for Windows, but one that is definitely worth checking out is [Cmder](https://bliker.github.io/cmder/). It is not an emulator per se but a package of useful 3rd party applications. [GnuWin32](https://gnuwin32.sourceforge.net/) is also a good option to get some of the most common and popular Linux commands on windows.

## References

Expand Down
8 changes: 5 additions & 3 deletions topics/cryptography/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#Cryptography

> Cryptography is the practice and study of techniques for secure communication in the presence of third parties. -- [Wikipedia](https://en.wikipedia.org/wiki/Cryptography)
> Cryptography is the practice and study of techniques for secure communication in the presence of third parties. - [Wikipedia](https://en.wikipedia.org/wiki/Cryptography)
In case of CTFs, the goal is usually to crack or clone cryptographic objects or algorithms to reach the flag.
In the case of CTFs, the goal is usually to crack or clone cryptographic objects or algorithms to reach the flag.

###Example

Expand All @@ -16,7 +16,9 @@ kxn iye lbedec

##Getting Started

*To-Do*

##Sources/See More

[Cryptography](https://en.wikipedia.org/wiki/Cryptography)
[Introduction to Cryptography](https://www.cs.umd.edu/~waa/414-F11/IntroToCrypto.pdf)

4 changes: 1 addition & 3 deletions topics/cryptography/caesar-cipher/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,4 @@ There are many approaches to cracking Caesar ciphers, but usually the best way t

##Sources/See More

[Caesar Cipher](https://en.wikipedia.org/wiki/Caesar_cipher)

[Quick and Simple Decryption Tool](https://www.xarg.org/tools/caesar-cipher)
[Brute force caeser cipher cracker](https://nayuki.eigenstate.org/page/automatic-caesar-cipher-breaker-javascript)
8 changes: 2 additions & 6 deletions topics/cryptography/md5/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#MD5 Hashing

> MD5 is a widely used cryptographic hash function producing a 128-bit (16-byte) hash value, typically expressed in text format as a 32 digit hexadecimal number -- [Wikipedia](https://en.wikipedia.org/wiki/MD5).
> MD5 is a widely used cryptographic hash function producing a 128-bit (16-byte) hash value, typically expressed in text format as a 32 digit hexadecimal number - [Wikipedia](https://en.wikipedia.org/wiki/MD5).
This system is commonly used to check the integrity of files (like downloads). The way MD5 hashes are created, any slight variation in a file creates a new hash that is completely different than the previous, making changes in files (e.g. corruption in download or tampering) very apparent.

Expand All @@ -16,8 +16,4 @@ MD5 hashes are very standard, as they are always 128 bits, or 32-character strin

##Sources/See More

[MD5](https://en.wikipedia.org/wiki/MD5)

[MD5-Creator](https://www.md5-creator.com/)

[MD5Sum](https://linux.about.com/library/cmd/blcmdl1_md5sum.htm)
[Easy MD5 cracker](https://www.md5decrypter.co.uk/)
9 changes: 5 additions & 4 deletions topics/cryptography/vigenere-cipher/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#Vigenère Cipher

> The Vigenère Cipher is a method of encrypting alphabetic text by using a series of different Caesar ciphers based on the letters of a keyword -- [Wikipedia](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher).
> The Vigenère Cipher is a method of encrypting alphabetic text by using a series of different Caesar ciphers based on the letters of a keyword - [Wikipedia](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher).
Please read the article on [Caesar Ciphers](../caesar-cipher), if you already haven't, because the Vigenère Cipher practically takes a keyword, and applies a certain caeser cipher multiple times according to the letters of the keyword.
Please read the article on [Caesar Ciphers](../caesar-cipher) if you haven't already because the Vigenère Cipher is a direct derivative of the former. The Vigenère cipher takes a keyword and applies a certain caeser cipher to it multiple times according to the letters of a keyword.

*To-Do Example*

##Detecting

Vigenère Ciphers appear to be identical to any other substitution cipher, but trying to solve it as Caesar Cipher will not work. Attempt to check for this type of cipher if the Caesar Cipher crack does not work.
Vigenère Ciphers appear to be identical to any other substitution cipher, but trying to solve it as Caesar Cipher will not work. Check for this type of cipher if the Caesar Cipher crack does not work.

##Solving

Expand All @@ -24,5 +24,6 @@ Solution can be found [here](https://github.com/ctfs/write-ups/tree/master/defkt

##Sources/See More

[CTF Write-up](https://github.com/ctfs/write-ups/tree/master/defkthon-ctf/crypto-100)
[Online Vigenère cracker](https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx)


1 change: 1 addition & 0 deletions topics/reversing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Reversing in the context of CTFs is usually the reverse engineering of software

##Getting Started

*To-Do*

##Sources/See More

Expand Down
6 changes: 3 additions & 3 deletions topics/steganography/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#Steganography

> Steganography is the art or practice of concealing a message, image, or file within another message, image, or file. -- [Wikipedia](https://en.wikipedia.org/wiki/Steganography)
> Steganography is the art or practice of concealing a message, image, or file within another message, image, or file. - [Wikipedia](https://en.wikipedia.org/wiki/Steganography)
In the context of CTFs it usually means finding the hints and flags that have been hidden with steganography. Most commonly an image file will be given as a task with no further instructions, and the participants have to be able to uncover the message that has been encoded in the media.
In the context of CTFs steganography usually involves finding the hints or flags that have been hidden with steganography. Most commonly a media file will be given as a task with no further instructions, and the participants have to be able to uncover the message that has been encoded in the media.

###Example

Expand All @@ -14,4 +14,4 @@ A rudimentary knowledge of media filetypes (e.g. jpg, bmp, png for pictures and

##Sources/See More

[Steganography](https://en.wikipedia.org/wiki/Steganography)

4 changes: 2 additions & 2 deletions topics/steganography/file-in-image/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

One of the most common steganography tricks is to hide a file inside of an image. The file will open normally as an image but will also hold hidden files inside, commonly zip, text, and even other image files.

The reason this works is because when an image file is read it has starting and ending bytes dictating the size of the image. The image viewer that you use will use the information between these bytes to present an image to you, ignoring anything before or after the terminating byte.
The reason this works is because when an image file is read it has starting and ending bytes dictating the size of the image. The image viewer that you use will use the information between these bytes to present an image to you, ignoring anything after the terminating byte.

For example, The terminating byte for a JPEG is FF D9 in hex, so using a hex viewer ([xxd](https://linuxcommand.org/man_pages/xxd1.html) is good for linux, or something like [HxD](https://mh-nexus.de/en/hxd/) for windows) you can find out where the image finishes. These bytes are sometimes hard to find in a sea of numbers though, so looking at the dump of the hex (the text representing the hex bytes on the left) can also help you find hidden .txt or .zip files.
For example, The terminating byte for a JPEG is FF D9 in hex, so using a hex viewer ([xxd](https://linuxcommand.org/man_pages/xxd1.html) is good for linux, or something like [HxD](https://mh-nexus.de/en/hxd/) for windows) you can find out where the image finishes. These bytes are sometimes hard to find in a sea of numbers though, so looking at the dump of the hex (the text representing the hex bytes) can also help you find hidden .txt or .zip files.

###Example

Expand Down

0 comments on commit 03bb6e6

Please sign in to comment.