GithubHelp home page GithubHelp logo

ctf-wiki / ctf-wiki Goto Github PK

View Code? Open in Web Editor NEW
7.7K 163.0 1.4K 576.93 MB

Come and join us, we need you!

Home Page: https://ctf-wiki.org

License: Other

Python 97.17% Shell 0.68% Dockerfile 2.15%
ctf wiki pwn reverse crypto misc mobile web

ctf-wiki's Introduction

CTF Wiki

Discord

中文 English

Welcome to CTF Wiki

CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts, originally hosted in 1996.

CTF covers a wide range of fields. Along with the evolving security technology, the difficulty of CTF challenges is getting harder and harder. As a result, the learning curve for beginners is getting steeper. Most online information is scattered and trivial. Beginners often don't know how to systematically learn CTF, which requires a lot of work and effort.

In order to let those people who are interested in CTFs start easily, in October 2016, CTF Wiki was established on Github. Along with gradually improved content over time, CTF Wiki has received lots of appreciation from security enthusiasts, many of those are guys that we think we would never meet.

As a freedom site, primarily focusing on recent CTFs, CTF Wiki introduces the knowledge and techniques in all aspects of CTF to make it easier for beginners to learn CTF.

Now, CTF Wiki mainly contains the basic skills for CTF, but we are working hard to improve the following contents.

  • Advanced skills used in CTF
  • Special topics appearing in CTF

For the above-mentioned parts to be improved, please refer to Projects which details what are planned.

Although now CTF Wiki mainly focus CTF, it is not strictly limited to CTF topics. In the future, CTF Wiki will include

  • Tools used in security research
  • Increased discussion of security in the world

In addition, given the following two points

  • Information about technology should be openly shared.
  • As new techniques are always being developed, old techniques will start to fade over time and they should be replaced with new techniques.

Therefore, CTF Wiki will never publish books.

Finally, originating from the community, as an independent organization, CTF Wiki advocates freedom of knowledge, will never be commercialized, and will always maintain the character of independence and freedom.

How to build?

CTF Wiki uses mkdocs to show its contents. And it is deployed at https://ctf-wiki.org.

It can also be deployed locally, with the following steps:

# 1. clone
git clone https://github.com/ctf-wiki/ctf-wiki.git
# 2. requirements
pip install -r requirements.txt
# generate static file in site/
python3 scripts/docs.py build-all
# deploy at http://127.0.0.1:8008
python3 scripts/docs.py serve

A local instance of mkdocs is dynamically updated, for instance when a markdown file is modified, the corresponding page will be modified too.

If you just want to view it statically, try Docker!

docker run -d --name=ctf-wiki -p 4100:80 ctfwiki/ctf-wiki

And then access http://localhost:4100/ .

How to practice?

Firstly, learn some basic security knowledge through online reading.

Secondly, CTF Wiki has two sister projects.

  • All of the challenges that are mentioned are in the ctf-challenges repository, you can locate them with their corresponding category.
  • The tools mentioned in the CTF Wiki are constantly added to the ctf-tools repository.

How to make CTF Wiki Better?

We welcome to write content for the wiki and share what you have learned.

Before you decide to contribute content, please read CONTRIBUTING.

Thank you to all the people who have already contributed to CTF Wiki.

What can you get?

  • Ability to learn new things quickly
  • Different ways of thinking
  • A love for solving problems
  • Interesting security techniques
  • Memorable and enriching experience

Before reading the Wiki, we hope to give you some advice:

  • Learn to ask smart-questions .
  • Learn to use Google Search for self-improvement.
  • Be good at least one programming language, such as Python.
  • Practice is the most important learning tool.
  • Maintain the passions and desire to learn about new techniques.

The security circle is small and the areas of exploration is vast. Let's get started with CTF Wiki!

ctf-wiki's People

Contributors

40huo avatar angelkitty avatar arttnba3 avatar bash-c avatar cancergary avatar chrisyy2003 avatar chujdk avatar ciphersaw avatar cjcslhp avatar cq674350529 avatar creatoria avatar duo-1337 avatar escapingbug avatar fjh1997 avatar gml-sec avatar h3h3da avatar hitcxy avatar iczc avatar ir1d avatar iromise avatar love-houbunsha avatar mahaloz avatar mz1z avatar ototot avatar puzhuoliu avatar qux-bbb avatar smi1esec avatar vancir avatar vbty avatar winmin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ctf-wiki's Issues

example/hctf2016-brop/exploit.py探测溢出长度时应该使用sh.send

getbufferflow_length中使用sh.sendline,但是源文件中使用的是read(),不是gets,导致读入的时候最后有\n (0a),但是刚好返回地址下一个地址是40070a:
400705: e8 21 00 00 00 callq 40072b
40070a: 85 c0 test %eax,%eax
从而掩盖了这个bug,当我重新编译main.c的时候,当下一个地址是4006bd:
4006b8: e8 25 00 00 00 callq 4006e2
4006bd: 85 c0 test %eax,%eax
就会覆盖变成40060a,从而返回溢出长度为71.
因此请修改为sh.send(i * 'a')

Encode

Article

  • ..

Chanls

  • ...

enrich ret2shellcode

May be should be written in the following order:

  1. directly return to shellcode
  2. NOP sled to shellcode
  3. jump esp to shellcode
    in which the third is most powerful.

Is addr a local or global variable?

Should addr be a local variable or does the function want to use and modify the global addr variable? If the former then the function must contain addr = xyz and if the latter then the function must contain global addr.

flake8 testing of https://github.com/ctf-wiki/ctf-wiki on Python 2.7.13

$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

./pwn/stackoverflow/example/hctf2016-brop/exploit.py:155:13: F823 local variable 'addr' (defined in enclosing scope on line 169) referenced before assignment
            addr += len(data)
            ^
1     F823 local variable 'addr' (defined in enclosing scope on line 169) referenced before assignment

Hello

你好能留个联系方式吗我们想贡献一部分内容 比如Pwn的堆部分

Heap explore TODO list as well as TOC

下面的内容既可以看做是堆利用中的 TODO list,也可以视为堆利用(以glibc为例介绍)中所希望形成的目录。目前感觉对于所需要写的基本内容有以下这么多,但是如何组织的合理,还有待考虑。

  • 基本堆介绍
  • 堆相关数据结构
  • 深入理解堆分配与回收
  • 基本堆利用方式
    • Heap OverFlow
    • off by one
    • chunk extend
    • Use After Free
    • Unlink
  • FastBin Attack
    • FastBin Double Free
    • House of Sprit
    • Arbitrary Alloc
  • House of Force
  • unsorted bin attack ( zerostorage to be done on the lastest Ubuntu 16.04 )
  • House of Lore (require example)
  • Heap Spray
  • Heap fengshui
  • House of Einherjar
  • House of Rabbit
  • House of Orange
  • Many others

如果有任何可以使得这个目录更加合理的建议,欢迎提出。其中合理大概就是

  • 有逻辑
  • 由浅入深
  • 适合新手一步步进阶

2017 WHCTF Bornpig

借用官方writeup,本题目是考察快速相关攻击的题目。。。找时间把补了,,,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.