/YetAnotherBookCollection

YetAnotherBookCollection

Primary LanguageRuby

YetAnotherBookCollection

Author: Polyakov Igor

SibirCTF 2017 YetAnotherBookCollection service

Installation

Required: postgresql, ruby, bundler, rails

Install dependencies:

apt-get update
apt-get install ruby ruby-dev
gem install bundler

Run

RAILS_ENV=production bundle exec rake db:create db:schema:load db:seed DISABLE_DATABASE_ENVIRONMENT_CHECK=1
RAILS_ENV=production bundle exec rake assets:precompile
RAILS_ENV=production bundle exec rails server
  • A4 – Нарушение контроля доступа

  • A1 – Внедрение кода

  • A* – Mass Assignment

ToDo:

  • Bugs

    • DOS - to_sym. Symbol — это особый тип данных в Ruby, являющийся, по сути, константой, при этом сами символы никогда не удаляются сборщиком мусора. Соответственно можно забить память пользовательским вводом.
  • Docker

  • Juri

Dependency:

  • Rails

  • ImageMagic

  • PostgreSQL

Checker

checker.py

URL

http://host:9999

Checker input params

$1 = CMD
$2 = HOST
$3 = ID
$4 = FLAG

Example checker call

#!/bin/bash

echo "TEST CHECK"
./checker.py check 127.0.0.1
echo "TEST PUT"
./checker.py put 127.0.0.1 user_name e23dewf43r3q4r8efd4
echo "TEST GET"
./checker.py get 127.0.0.1 user_name e23dewf43r3q4r8efd4

Exit codes

110 - ERROR
104 - DOWN
103 - MUMBLE
102 - CORRUPT
101 - SUCCESS

License

MIT License

Copyright (c) 2017 Igor Polyakov