セキュリティ系の勉強、その他開発メモとか雑談. GithubはUnity触っていた頃ものがメイン Twitterフォローもよろしくです

【Rails5】Administrateのスタイルシート読込先を変更する

やること 管理画面生成のgemadministrateにてRailsのデフォルトのスタイルシートapplication.cssから、スタイルを読み込ませる方法。そんなに難しいことはしません。 方法 以下のコマンドで_styoesheet.html.erbを生成します。これでadministrateのデフォル…

【Rails】登録内容がユニークでないユーザへの条件別対応

例えば ユーザが電話番号で仮登録をし、認証のためのURLを生成して返す場合、同じ電話番号を使って再度仮登録の内容をPOSTしてくる場合がある。1時間以内に2回送ってくる人は恐らくイタズラに近い可能性があるのでエラーを返すが、それ以降に再度送ってき…

【Rails】コールバックで自分以外のレコードとユニーク判定を行う

解決 レアケースだと思いますが、バリデーションのコールバックでhoge_columnsという属性のユニーク判定をしたい場合です。特に難しいことはなく、下のようにやります。 User.where(hoge_columns:self.hoge_columns).where.not(id: self.id).empty? 本来なら…

OWASP Juice-Shop 初心者感想

Juice-Shop OWASPから提供されているやられサイト。githubから取ってきて自分で建てて、そこで試せます。答えを見ながらもようやく完走したので、初心者目線で感想を書いてみます。 github.com コンテンツ内容 今まで見つかったライブラリとかの脆弱性がみっ…

【Rails】Administrateでモデルを持たないページ(Rootページ)を作成

Administrate 今回使用したバージョン トップページ gemの特性 解消法 Administrate 管理画面を簡単に作れるgemで、カスタマイズが他のものよりも容易である点が特徴っぽいです。 github.com 今回使用したバージョン # Gemfile.lock administrate (0.11.0) a…

【復習回】InterKosenCTF 2019

参考サイト 【web】uploader(warmup) 【web】Temple of Time 【web】Image Extractor シンボリックリンク コマンドインジェクション 【web】Neko Loader 結果 お疲れ様です。今回はweb問だけに絞ってチャレンジしました、が、相変わらず、碌に回答できずに終…

【UNION SELECT】Juice ShopのSQLインジェクションの備忘録

Retrieve a list of all user credentials via SQL Injection 解くまえに 通常のリクエスト エラーを起こす union select 模範回答 www.owasp.org OWASPが提供してくれているやられサイト。 今までUNION SELECTのSQLインジェクションがよく分かっていなかっ…

【Rails5】find_by(nil)が先頭レコードを返す

find_by find_byメソッドは、検索するカラムとその条件を指定してそのレコードのうち最初の一件を取得します。例えばfind_by(id: 1)ならidが1のレコードを返します。 find_by(nil) -> nil ??? 使い方は正しくはありませんが、この使い方をするとnilが返って…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録③

目的 itamae itamae呼び出し方法 レシピ dependencies users ruby その他 MySQL capistrano側の変更 余談 前回はcapistranoでデプロイをする部分をやった。が、デプロイ先のaws内の準備は手動でやったので、その部分をitamae自動化したい。 thinline196.hate…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録②

Capistrano 参考サイト 使用Gem capistrano設定 config/deploy/production.rb config/deploy.rb lib/capistrano/tasks/unicorn.rb config/unicorn/production.rb 環境変数 awsのRDBを使用する プライベートリポジトリからdeployする デプロイ実行 その他対処…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録①

参考サイト terraform 設定(main.tf) 参考サイト 基本的にこちらを参考にしているため、こちらを見れば諸々解決可能です。本記事は備忘録なので見にくいかも。 tech.recruit-mp.co.jp kenzo0107.hatenablog.com terraform terraformとは インフラストラクチ…

【Rails】git-cz, rubocopなど初期導入での設定

新規のRailsのプロジェクト yarnの導入 npmのモジュールの導入 package.jsonに追記 rubocop.ymlの設定 .cz-config.js おまけ 新規のRailsのプロジェクト を久しぶりに立ち上げた際に、git-cz等の導入方法を忘れていたので備忘録として残しておきます。 yarn…

【Mini Hardening】#3.3@FOLIOに参加してきた

Hardeneing とは、与えられた環境を攻撃から護り続け、なるべくサービスを稼働させ続ける事が目的の競技です。調べればいろいろ出てきますが、本戦は8時間に渡って競技をするのに対しこちらは3時間の短縮版となっています。 内容 については、ネタバレ厳禁と…

【visudo】sudoers.d service(コマンド)の指定

visudo username ALL=(ALL) NOPASSWD: /sbin/service nginx start こんな感じ。コマンドを指定する時は、絶対パスで指定してあげないと、ダメです。 /bin/systemctlみたいな感じで。 参考サイト visudoでsudo権限の設定をする際のメモ(sudoersの'ers&#3…

【Write-up】Micro-CMS v1 Micro-CMS v2 【hacker101CTF】

A little something to get you started Micro-CMS v1 flag0 flag1 flag2 flag3 Micro-CMS v2 flag0 flag1 flag2 A little something to get you started ソースのheadをみると、背景画像としてbackground.pngを読んでいるっぽいので、URLにベタ書きして飛ん…

【Ruby】プロジェクトにRubyとBunlderのバージョンを合わせる

プロジェクトをクローン してきた後、bundle installを走らせると思うのですが、その際にプロジェクトのRubyにバージョンを合わせる必要があるので、備忘録 rubyのバージョン Gemfile.lockファイルの一番下に書いてある場合。 RUBY VERSION ruby 2.3.3p222 B…

【Ruby】bundle install libv8のエラー

bundle installのコマンドで通したい $ gem install libv8 -v '3.11.8.17' -- --with-system-v8 単体でインストールの紹介はされているが、上コマンド一発で通す場合。 qiita.com blog.skylarking.me これに追記 /.bundle/config --- BUNDLE_PATH: "vendor/b…

【SECCON for Beginners 2019】[web]Secure Meyasubakoから勉強する

ctf

Secure Meyasubako 強い皆さんのWrite-up 問題 CSPバイパスとは? 今回 追記 他の方のWrite-up1 他の方のWrite-up2 追記の余談 おわりに Secure Meyasubako という問題があったのですが、全くよく分からなかったので書きながら勉強したつもりになる記事です…

【RSpec】includes, preload等のキャッシュのテスト

よくググり直すので備忘録。 Rails: ActiveRecord関連付けのpreload/eager-loadをテストする2つの方法(翻訳) ### scope :with_targets{ includes(:targets)} ### subject{Hoge.with_targets} expect(subject.first.association(:targets).loaded?).to eq t…

【XSS】CTFでcookieを自サーバに送る問題

ctf

前置き SECCON for Beginners ctf 2019で、Himitsuという問題が出題されました。とりあえず、そのWrite-upに関しては他の方のを参考にしてください。 teppay.hatenablog.com st98.github.io で、この問題管理人のcookieを奪うために、XSSでcookieを自分のサ…

【SECCON for Beginners 2019】katsudon-okawari 勉強してみる会

この記事は 弱々な自分のためにWriteUp見て勉強するだけなので、詳しく知りたい方は私が参考にしたサイトさんへ飛んでください! 参考サイト teppay.hatenablog.com katsudon-okawari katsudonという問題が出題されたのですが、想定解でないものが見つかりお…

【SECCON for Beginners2019】復習

昨年に引き続き.. 今年も参加しました。今年はBornOn21というチームで167/666位という結果でした。正直僕はほぼ貢献できてないです(去年より難しくなってた?)。なのでWriteUpという見出しは使わないで、もう完全に他の方の解き方を見て復習する記事にしま…

【RubyOnRails】after_initializeとFactoryBot

ActiveRecordのコールバック まずは下のサイトさんをご覧ください。 qiita.com # Hoge.create()の実行順 hoge = Hoge.new(name: "hoge") #initialize after_initialize #newメソッドで生成したときのみ hoge.save! #BEGIN TRANSACTION before_validation #va…

【RSpec】ActionMailer deliver_now が呼ばれる事をテストする

やりたかった事 HogeMailerがあり、HogeDeliveryのインスタンスメソッド(send_email)内でHogeMailerを使ってメールを飛ばしていました。 私は今HogeDeliveryのモデルテストを書いていたのでsend_emailのテストを書こうとしました。しかし、ActionMailer::Bas…

【PowerShell】コマンドで壁紙を変更する

まずググると いろんな情報が出てきますね。ただ、Windows10に対して有効な手段が見つけにくかったので、ここに残しておきます。 有効であったもの $setwallpapersource = @" using System.Runtime.InteropServices; public class wallpaper { public const …

【備忘録】angstromctf 復習

まえおき これはWriteUpではないです。他のサイトさんの回答を見て解けなかった問題を自分用に残しておくためのものなので、WriteUpが見たい方はぜひ参考サイトさんの方を見てください! 参考サイト(強く推奨) yoshiking.hatenablog.jp dark-lambda.com kusu…

【備忘録】SECCON 令和CTF

まえおき これはWriteUpではないです。他の方の解法をみて自分用に備忘録として残しているだけなので、ぜひ参考サイトさんの方を見に行ってください。 参考サイト(強く推奨) yuta1024.hateblo.jp kusuwada.hatenablog.com 新元号発表 pdfファイルがもらえる…

BadUSB Digispark 日本語キーボード対応

本題 今巷で流行っている「ハッキングラボのそだてかた~ミジンコでもわかるBadUSB~」ですが、読んでわかるようにキーストロークを再現する事によりその手法を成り立たせています。そして、そのライブラリ?はUSキーボードを基準としているため、配列の違う日…

angstromctf 2019 WriteUp

ctf

はじめに angstromctfというワードがtwitterで流れてきたのでその勢いで登録しました。初心者にも解ける問題があるよって言われたので、、、ctfの勉強なんてしようと思っててずっとしてこなかった感じなので、これを機に始めようかななんて思っています。な…

【Rspec, Capybara】dt, dd要素を取得 ~ 隣の要素を取得

タイトル通りの内容です。 フィーチャーテストをする際に、dd, dtの値を関連づけて取ることでテストをわかりやすく、書きやすくしたいと思いました。 問題 <dl> <dt id="family-name" class="label">f_name</dt> <dd class="data--string">family</dd> <dt id="given-name" class="label">g_name</dt> <dd class="data--string">given</dd> <dl> 上のfamilyと言う<dd>の値をラベルf_name経由で取得したい。Capybaraであ</dd></dl></dl>…