gitの使ってないブランチをガッと消すコマンド書いた

バイトで開発するときブランチ切ってプルリクを送る感じで開発してて、ブランチ多いのが気になってたけど、ひとつひとつ消すのもだるいので書いた。 alias rmbr="git branch --merged | grep -v '*' | grep -v 'master' | xargs -I % git branch -d %" alias…

SHA2017 CTF round Teaser NoComment..Again writeup

CTF

問題文 There might be something hiddenq in this file, can you find it? .exeが与えられる。 解く 動かしてみると、PealApp Utilityのライセンスが評価版で期限が切れたという旨のメッセージが出る。 これはPCの時間をn日前にすることで回避できる。この…

SHA2017 CTF round Teaser Website Attack writeup

CTF

SHA2017 CTF round Teaser Website Attack (Network) のwriteup。ひさしぶりにCTFをやった。 問題文 Our website received an attack in 2013, we managed to capture the attack in this pcap. Can you find out if we leaked some sensitive information? …

GSoC 2017にmetasploitで採択された。

GSoCとは GSoCというのはGoogle Summer of Codeの略で、アメリカでは学校が休みである夏の3ヶ月(5/30〜8/22)の間、Googleからお金を貰ってOSSに貢献しようというイベントである。日本では一部の期間、学校がある期間とかぶり、一見むずかしいように見える…

RSpecで画像をアップロードするAPIのテストを書く

Rack::Test::Methodsに含まれるRack::Test::UploadedFile.newを使う。Gemfile.lockを見れば分かるようにrack-testはデフォルトでRailsアプリケーションにインストールされている。 以下、grapeで作成した画像をアップロードするAPIに対する正常系のテストの…

GOT、PLTとIAT

動的リンクされたライブラリのアドレス解決の際、ELFではGOT、PLTが、PEではIATがそれぞれ用いられる。たまにどっちがどっちでどうだったのか分からなくなるのでメモしておく。 GOTとPLT GOT(Global Offset Table)はシンボルへのポインタの配列で、 プログラ…

メソッドを関数に内包するとライブラリ作るときに便利

go

メソッドを関数に内包すると当然ながら関数のように扱える。初期化済みのインスタンスや構造体を使うことで、構造体の初期化をしなくていいようにしている。これは特にライブラリを作るときに便利で、lib.func() という風にメソッドを呼ぶことができる。ライ…

Pythonスクリプトに対してユニットテストするときのディレクトリ構成

フレームワークを使って開発しているとユニットテスト用にディレクトリが用意されていることもあるが、単体のPythonスクリプトに対してユニットテストを書くときはディレクトリ構成を考える必要がある。やはりユニットテストとそれ以外は違うディレクトリに…

近況

nao: No-meaning Assembly Omitter for IDA proを公開したところ、リポジトリめっちゃふぁぼられたり、unicornの作者にコメントされたり、unicornのshowcaseに載せてもらえたりして高まった。 ツイートされた! w0w, finally someone used Unicorn emulator …

Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介

はじめに 情報セキュリティ系論文紹介 Advent Calendar 2016 - Adventarの23日目の記事として、Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIXの紹介をやっていく。今日は12月23日であり、明日はクリスマス・イブである。 これは…

Railsを5.0にupdateした時のメモ

方法 Gemfileを編集する。Railsのversionを最新版に指定してbundle update。 gem 'rails', '5.0.0.1' # そのときの最新版を指定してくれ! Rails5に対応していないversionを指定されているgemがあったりするのでエラーメッセージに応じてversion指定を抜く必…

SSPのエラーメッセージからのinformation leak

SSPのエラーメッセージとは SSP(stack-smashing protection)とはスタック上にあるcanaryと呼ばれる値を配置し、それが書き換えられたか否かでstack overflowしたかどうかを判定するセキュリティ機構である。 stack overflowが起こるコードを実行してみる。 #…

デーモンの仕組み

デーモンはバックグラウンドで動き、terminalからインタラクティブに操作されることがないプロセスである。起動時に開始し、rootユーザやapache、postfixなどの特権ユーザにより動かされる。systemdで操作するcrondとかsshdとかのことである。 デーモンは一…

DMCAに調査目的でのリバースエンジニアリングが例外に追加されそう

DMCA updated – toaster penetration testing gets green light in America • The Registerによると、アメリカの法律であるDMCA(デジタルミレニアム著作権法)の例外に、調査目的でのリバースエンジニアリング等のセキュリティテストが2年以内に追加されるよ…

IDAにカラースキーマ(.clr)を適用する

メニューバーの Options から Colors を選択すると以下の画面が出てくる。 importボタンを押してファイルを選択すれば終わり。 おすすめカラースキーマはeugeii/ida-consonance: Consonance, a dark color scheme for IDA.。 完全にやり方を忘れていたので備…

CODE BLUE 2016とAV TOKYOに行った。

去年はカスペルスキー大先生の学生支援枠で参加していたCODE BLUEに学生スタッフとして参加した。今年のスタッフはスーツ着なくてよくなっていたり、スタッフ数が倍になっていたりで、去年のスタッフのみなさんに比べてかなり楽になっていた。相変わらず異常…

サイバーエージェントの長期インターンに行ってきた

8/16から9/21までサイバーエージェントの長期インターンに行っていたので感想を書く。 某インターン以外でも最高の夏は過ごせる!! 面接 インフラかサーバサイドやりたいけど、インフラは自信ないとか言ってたら、「OpenStackって知ってる?」って聞かれて「…

androidでpwnできる環境を作ってみる

ndk-buildにより作成したプログラムをandroid上で待ち受けさせる。arm環境でpwnするときに使える。 準備 プログラムを用意する ソース /* test.c */ # include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } ビルドスクリプト Application.mkを</stdio.h>…

社会...

給料日 給料日なのにまだ振り込まれてないのでこれはキテますよ— 朝はむずかしい (@tkmru) 2016年8月25日 なんか今日は口座確認しただけでつかれた— 朝はむずかしい (@tkmru) 2016年8月25日 最悪レベルで人権がなくて給料が振り込まれない(2度目)— 朝はむず…

gccでlibc抜きでコンパイルを通す

Hello from a libc-free world! (Part 1) (Ksplice Blog) がおもしろかったのでやっていく。 libcありのとき コード よくあるhello worldのコード $ cat hello_with_libc.c # include <stdio.h> int main() { printf("Hello World\n"); return 0; } コンパイル $ gcc </stdio.h>…

Unbreakable Enterprise Product Activationをz3pyを使って解いてみる

はじめに z3pyにkatagaitai勉強会#6 - 関西|easyで入門したので、練習がてらGoogle CTF 2016のUnbreakable Enterprise Product Activationを解いた。 この問題を人力で解くのは難しく、競技期間中は解けなかったが、z3pyを使えば楽に解くことができた。 実行…

IoTセキュリティハッキングコンテスト神戸で大洗女子学園は廃校になりました

IoTセキュリティハッキングコンテスト神戸2016 | Kobe Digital Labo 神戸デジタル・ラボ に大洗女子学園を代表して参加してきました。IoTセキュリティハッキングコンテストというのは、要はIoTに関係がある問題が出るCTFですね。 様子 高校の廃校を回避する…

strippedなgoのバイナリを読み解く

この前はふつーのgoのバイナリを読んだ。今回はstrippedなgoのバイナリを読んでいく。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modu…

医療セキュリティハッキングコンテスト神戸2016に行ってきた

医療セキュリティハッキングコンテストとは 実際に運用されている医療系ソフトウェアを合法的に叩き潰せて、賞金も出る最高のイベントです。学校の先輩達とチームで出場してました。医療セキュリティハッキングコンテスト神戸2016 | Kobe Digital Labo 神戸…

golangのバイナリをちょっとまじめに読んでみる

golangのバイナリをちょっとまじめに読んだのでメモ。runtimeのコードと合わせて、バイナリがどういう構造になっているのか正面から読んだ。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x…

log2timelineの使い方

この記事は1年半前から下書きのままになっていたものである。 log2timelineとは タイムライン解析というファイルシステムのタイムスタンプ情報を元に、時系列順に痕跡を解析していく手法がある。 log2timelineはそのためのフレームワークである。plasoという…

Unicorn、usercornを使ってみる

Unicornとは この記事での Unicorn は、エミュレータの方であり、決してRackサーバの方ではない。 Unicornは軽量でマルチプラットフォーム、マルチアーキテクチャな CPU emulator frameworkである。UnicornはNguyen Anh Quynh氏が中心となって開発されている…

急にCSSがくずれた話

大分前に作ったchrome拡張のCSSがくずれていた。favurl - Chrome Web Store確認してみたらpreタグに対しての word-wrap: break-word; が効いていなかった。 html - How do I wrap text in a pre tag? - Stack Overflowによると、CSS3ではwhite-space: pre-wr…

セキュリティ・キャンプ・フォーラムで公開処刑されてきた

セキュリティ・キャンプ・フォーラムとは セキュリティ・キャンプの卒業生の同窓会的なイベントです。 「セキュリティ・キャンプフォーラム2016」開催のご案内:IPA 独立行政法人 情報処理推進機構 経緯 今年からセキュリティ・キャンプ・フォーラムにセキュ…

Rubyでparse.com経由でPush通知をする

parse.comとは MBaaS(Mobile Backend as a Service)の一種で、簡単にAndroidやIOSにPush通知できるサービス。https://www.parse.com/ RubyでPush通知を送る gem Rubyからはparse-ruby-clientというgemを使うことで楽に使える。しかし、ドキュメントが分かり…