読者です 読者をやめる 読者になる 読者になる

VolgaCTF 2017 Quals 供養(Writeup)

CTF

VolgaCTF 2017 Qualsに参加。1150ptで51位。 VC (crypto 50) Visual secret sharing scheme(Visual cryptography)。 $ composite -compose difference A.png B.png C.png VolgaCTF{Classic_secret_sharing_scheme} PyCrypto (crypto/reverse 150) 20バイト…

MSVCR???.dllやMSVCP???.dllが見つからないときの対処法

Windowsアプリケーションを実行する際、まれに次のようなエラーメッセージが表示されて起動できないことがある。 コンピューターに MSVCR120.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてください…

0CTF 2017 Quals 供養(Writeup)

CTF

0CTF 2017 Qualsに参加。237ptで119位。 Welcome (Misc 12) IRCのチャンネルトピックにflagがある。 #0ctf2017: Welcome to 0ctf 2017! https://ctf.0ops.net (flag{Welcome_to_0CTF_2017}) integrity (Crypto 75) AES-128-CBCで暗号化されたデータを細工す…

AlexCTF 供養(Writeup)

CTF

AlexCTFに参加。990ptで259位。 TR1: Hello there (Trivia 10) IRCのチャンネル名にフラグがある。 IRC: #alexctf @freenode #alexctf: Alexandria University student held capture the flag event ctf.oddcoder.com ALEXCTF{W3_w15h_y0u_g00d_luck} TR2: S…

BITSCTF 2017 供養(Writeup)

CTF

BITSCTF 2017に参加。410ptで30位。 BotBot (Web 10) /robots.txtを見るとそれっぽいものがある。 Useragent * Disallow: /fl4g /fl4gにアクセスすると301になるが、/fl4g/にしたところフラグが得られた。 $ curl -v http://botbot.bitsctf.bits-quark.org/f…

scikit-learnでt-SNE散布図を描いてみる

「scikit-learnでPCA散布図を描いてみる」では、scikit-learnを使ってPCA散布図を描いた。 ここでは、scikit-learnを使って非線形次元削減手法のひとつt-SNEで次元削減を行い、散布図を描いてみる。 環境 「scikit-learnでPCA散布図を描いてみる」を参照。 M…

scikit-learnでPCA散布図を描いてみる

高次元の特徴量を持つデータの分布をおおまかに把握する方法として、PCA(主成分分析)で次元削減した後散布図を描く方法がある。 ここでは、Dockerを用いてデータ分析プラットフォームAnaconda環境を構築し、scikit-learnを使ってPCA散布図を描いてみる。 …

Insomni'hack teaser 2017 供養(Writeup)

CTF

Insomni'hack teaser 2017に参加。250ptで93位。 baby (Pwn 50) NX、PIE、FullRELROが有効なx86-64 ELF。 # file baby baby: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for G…

Pari/GPで楕円曲線離散対数を計算してみる

「Pari/GPでECDH鍵交換、ECDSA署名をやってみる」では、数式処理システムPari/GPを使ってECDH鍵交換、ECDSA署名の計算を行った。 これらの楕円曲線暗号は、楕円曲線離散対数問題(ECDLP)と呼ばれる問題が計算量的に困難であることを安全性の根拠としている…

screenのウィンドウタイトルをいい感じに自動変更する方法のメモ

GNU Screenでウィンドウタイトルを 普段はカレントディレクトリのディレクトリ名 コマンド実行中はコマンド名 SSHログイン中はリモートホスト名 に自動変更し、非アクティブウィンドウでコマンドが終了した際にハイライトさせる方法のメモ。 ここでは、次の…

33C3 CTF 供養(Writeup)

CTF

33C3 CTFに参加。325ptで140位。 pdfmaker (misc 75) 接続すると、適当なTeXファイルをコンパイルできそうなことがわかる。 $ nc 78.46.224.91 24242 Welcome to p.d.f.maker! Send '?' or 'help' to get the help. Type 'exit' to disconnect. > help Avail…

The Malloc Maleficarum (Bugtraq 2005)

この記事は「CTF Advent Calendar 2016」24日目の記事です。 「glibc malloc exploit techniques」では主要なmalloc系exploitテクニックについて説明したが、歴史的には他にもさまざまな手法が公表されている。 ここでは、2005年にBugtraqメーリングリストに…

Exploit系複合テクニックのメモ

この記事は「CTF Advent Calendar 2016」17日目の記事です。 ちょいちょい見かけてはいるのだが、実戦でよく忘れてしまうので応用の効きそうなものをまとめておく。 ROPからのGOT overwrite 単純なROP問題の場合、GOTに置かれた関数アドレスを読み出した後of…

機械学習と情報セキュリティ2016

この記事は「情報セキュリティ系論文紹介 Advent Calendar 2016」14日目の記事です。 近年、ディープラーニングと呼ばれる機械学習手法の進展もあいまって、ディープラーニングではない機械学習もそこそこの注目を集めている。 ここでは、2016年に公表された…

SECCON 2016 Online CTF 供養(Writeup)

CTF

SECCON 2016 Online CTFにチームで参加。 ほぼExploitジャンルのみを見ていたが、結局一番簡単な問題しか解けなかった。 cheer msg (Exploit 100) アセンブリコードを見ると、Message Lengthの値に応じてespが引き上げられている(alloca相当の処理らしい)…

「Why is Security Management So Hard?」というタイトルで発表した

第1回 セキュリティ共有勉強会 - connpass 「その他、社内セキュリティで語りたいことがあれば」という形でLT登壇者が募集されていたので、セキュリティマネジメントはなぜHardなのかというテーマで自分が考えていることについて話した。 Why is Security Ma…

Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA)

この記事は「CTF Advent Calendar 2016」9日目の記事です。 RSA暗号は二つの素数p, qから計算されるn=p*qを公開鍵として暗号化を行うものであるが、これを一般化したものとしてMulti-prime RSAがある。 ここでは、Multi-prime RSAの概要を説明し、これを題材…

RC3 CTF 2016 供養(Writeup)

CTF

RC3 CTF 2016に参加。2940ptで54位。 What's your virus? (Trivia 20) ILOVEYOU Horse from Tinbucktu (Trivia 30) Zeus Love Bomb (Trivia 40) Stuxnet Infringing memes (Trivia 50) PIPA Logmein (Reversing 100) よくあるタイプのcrackme。angrで解いた…

plain RSAに対するLSB decryption oracle attackをやってみる

「RSAに対する適応的選択暗号文攻撃とパディング方式」では、パディングなしのRSA(plain RSA)が選択暗号文攻撃に対して安全でない、つまり任意の暗号文を復号した結果を得られるとき、与えられた暗号文を直接復号することなく平文が得られることについて確…

Hack The Vote 2016 供養(Writeup)

CTF

Hack The Vote 2016に参加。251ptで244位。 Sanity (Vote 1) サービス問題。 The flag is flag{th3r3_1s_0nly_on3_ch0ic3} TOPKEK (Crypto 50) 次のようなテキストファイルが与えられる。 $ cat kek.43319559636b94db1c945834340b65d68f90b6ecbb70925f7b24f6…

EKOPARTY CTF 2016 供養(Writeup)

CTF

EKOPARTY CTF 2016に参加。575ptで182位。 Hidden inside EKO (misc, 50 points) 背景画像にFlagが書かれている。 EKO{th3_fl4g} Mr. Robot (web, 25 points) robots.txtにFlagの書かれたファイルへのパスがある。 EKO{robot_is_following_us} RFC 7230 (web…

Hack.lu CTF 2016 供養(Writeup)

CTF

Hack.lu CTF 2016に参加。594ptで66位。 simplepdf (Programming 150 (- 52)) 注釈に添付ファイルがついており、これを抽出すると同じようなPDFがまた出てくる。 抽出を10003回繰り返すとflagが得られる。 import zlib import re with open('simplepdf_f8004…

glibc malloc exploit techniques

malloc系exploitテクニックのうち、応用しやすそうなもののメモ。 環境 Ubuntu Server 16.04.1 LTS 64bit版、GLIBC 2.23 $ uname -a Linux vm-ubuntu64 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb…

HITCON CTF 2016 Quals 供養(Writeup)

CTF

HITCON CTF 2016 Qualsに一人チームで参加した。結果は500ptで103位。 たいした問題は解けてないが、供養。 Welcome (Reverse 50) サービス問題。 $ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright",…

整数オーバーフローと符号エラー

整数に関係するバグについてのメモ。 環境 Ubuntu 14.04.4 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are availa…

「HTTPプロクシライブラリproxy2の設計と実装」というタイトルで発表した

プレゼンテーション:HTTPプロクシライブラリproxy2の設計と実装 | PyCon JP 2016 in TOKYO PyCon JP 2016で以前作ったPython製HTTPプロクシライブラリについて発表した。 HTTPプロクシライブラリproxy2の設計と実装 from inaz2 きちんとPython 3対応にした…

Pari/GPでECDH鍵交換、ECDSA署名をやってみる

TLS 1.2では、楕円曲線暗号であるECDH鍵交換、ECDSA署名を使うことができる。 ここでは、数式処理システムPari/GPを使ってこれらの計算をやってみる。 環境 Ubuntu 14.04.4 LTS 64bit版、Pari/GP 2.5.5 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~…

vim-tinyで矩形挿入・削除する方法のメモ

viコマンドとして標準でインストールされていることが多いvim-tinyにて、コメントアウトや複数行のインデントに便利なコマンドのメモ。 矩形挿入 C-vして矩形選択し、Iを押して文字列を入力した後Esc。 反映されるまでに若干のタイムラグがある。 なお、スペ…

555タイマーICと圧電スピーカーでアナログシンセもどきを作ってみる

555タイマーIC(集積回路)を発振回路として使うと、さまざまな周波数の矩形波を作ることができる。 また、圧電スピーカーを使うと、一定の周波数で電圧を変化させることにより音を出すことができる。 ここでは、これらと半固定抵抗を組み合わせ、単純な回路…

Raspberry Pi 3でパケットキャプチャ用無線アクセスポイントを作る

Raspberry Pi 3にはWi-Fiモジュール(Broadcom BCM43438)が搭載されているが、このモジュールはクライアントとしてだけではなく、アクセスポイントとして動作させることもできる。 ここでは、Raspberry Pi 3でDHCPサーバ付き無線ルータを作り、アクセスポイ…

整流回路とオペアンプ増幅回路でWi-Fi電波を可視化してみる

次のページを参考に簡易電界強度計を作り、Wi-Fi 2.4GHzの電波強度をLEDで可視化してみる。 電波を見える化 簡易電界強度計(テレメーターテスター)の作成 | 制作事例 | 臨床工学技士の為の電子工作 部品調達 ブレッドボード(参考) ジャンパワイヤセット…

非安定マルチバイブレータ回路でLEDを点滅させてみる

電子工作の練習として、簡単な回路を作ってみる。 部品調達 サンハヤト SBS-202 LED点滅回路 小型ブレッドボードパーツセット ブレッドボード・ジャンパーワイヤ EIC-J-L: パーツ一般 秋月電子通商 電子部品 ネット通販 電子ブザーPB04…

GNU RadioでFMラジオ受信機を作ってみる

「Raspberry PiとUSBチューナー(RTL2832U+R820T)でFMラジオを受信してみる」では、市販のUSBチューナーを使ってFMラジオを受信してみた。 ここでは、SDR(Software-defined Radio)ツールであるGNU Radioを使ってFMラジオ受信機を作ってみる。 環境 Window…

大手サービスの行動履歴データの扱いについてまとめてみる

Google、FacebookなどのWebサービスやAdWords、DoubleClickなどの広告ネットワークは、ユーザのアクセス履歴や訪問サイト・検索ワード等を収集し、サービスのパーソナライズや広告表示に利用していることが知られている。 ここでは、そのような行動履歴デー…

Raspberry PiとUSBチューナー(RTL2832U+R820T)でFMラジオを受信してみる

Raspberry Piに市販のUSBチューナーを接続して、FMラジオを受信してみる。 また、受信している電波の周波数スペクトルを表示してみる。 環境 Raspberry Pi 3 (Raspbian Jessie Lite) $ uname -a Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 …

Raspberry PiにZabbixをインストールする

「Raspberry Pi 3でファイルサーバ兼iTunesサーバを作る」ではサーバ監視ツールとしてnetdataをインストールしたが、ディスク使用率の監視に難があるためZabbixに切り替えることにした。 ここでは、Raspberry PiにZabbixをインストールし、サーバの状態を表…

Google Sheetsでスクレイピング結果を定期的に記録する

Google Docsの表計算アプリであるGoogle Sheetsでは、Google Apps Scriptと呼ばれるJavaScriptベースのスクリプト言語でマクロを書くことができる。 また、Google Apps ScriptではTriggerと呼ばれる機能により特定の関数を定期的に実行することができる。 Go…

メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ

「ハッシュ」という言葉があいまいに使われている場面をしばしば目にするので、関係する概念とそれらの違いについてまとめてみる。 メッセージダイジェスト(Message Digest; MD) MD5、SHA-1、SHA-256など、あるバイト列(メッセージ)に対し固定長の要約値…

紙の手帳を使い始めた

ここ数年スケジュール管理にスマートフォンのスケジューラを使っていたが、紙の手帳を買ってあらためてこれを使い始めた。 メリットとデメリットのメモ。 紙の手帳のメリット スケジュール、タスクリスト、メモを集約できる ペンケースを兼ねる 書き込みの自…

「Protecting Passwords」というタイトルで発表した

2016年06月の #ssmjpのおしらせ – ssmjp Infomation 開発者・ユーザそれぞれの立場から、パスワードを守る方法について発表した。 Protecting Passwords from inaz2 最も強いパスワードは完全なランダム、最も適切な管理方法はサービスごとにまったく異なる…

VR TheaterでGear VRを体験してみた

VRを体験してみたくなったので、ネットカフェでヘッドマウントディスプレイGear VRを体験できるVR Theaterに行ってみた。 自分が行った店舗では、有料動画を見る見ないに関わらず、ネットカフェの利用料金とは別に600円が必要だった。 いくつかあるコンテン…

最近買ったもの2016

引っ越しに伴いいろいろ買ったので、それらのメモ。 本棚 これまでの経験から本棚はちゃんとしたものを買う必要があることがわかったので、大きいものを買った。 本棚(グレン BS1890) | ニトリ公式通販 家具・インテリア・生活雑貨通販のニトリネット キュー…

Twitterのツイート時刻を可視化する「TwiActivity」を作った

TwiActivity: 直近200件のツイート時刻を可視化 D3.jsにちょうどよいサンプルがあったので、任意アカウントのツイート時刻に適用するサイトを作ってみた。 TwitterのAPIが1リクエストあたり200件のツイートしか取れないので、とりあえず200件のみで可視化す…

Fire TV Stickを買った

「Raspberry PiにKodiをインストールしてネットテレビを作る」でネットテレビを作ってみたが、Raspberry Pi上のKodiではNetflixを見るのが難しかった。 そこで、ちょうどセールで20%オフになったFire TV Stickを買った。 Amazonプライムビデオに加え、アプリ…

気軽に質問できるWebサービス「OSIETE」を作った

OSIETE: インターネットに聞いてみよう 最近買ってよかったもの教えて! Webサービス開発の練習も兼ねて、気軽に質問・回答できるサイトを作った。 Heroku+Django+Bootstrap利用。 近年では検索結果やまとめサイト、ショッピングサイトのサジェストへの依存…

Amazon EC2のGPUインスタンスでハッシュ解読をやってみる

ハッシュ値から元の文字列を求めるハッシュ解読は、GPUを利用することにより高速に行えることが知られている。 ここでは、Amazon EC2のGPUインスタンスを利用し、oclHashcatを使った場合におけるハッシュ解読のパフォーマンスを調べてみる。 環境 Amazon Lin…

Pythonでネイティブコードを実行する

Pythonでネイティブコード(x86バイトコードなど)を実行する方法のメモ。 ctypesモジュールをインポートし、次のような関数を定義すればよい。 import ctypes def native_func(bytecode): libc = ctypes.CDLL('libc.so.6') libc.mmap.restype = ctypes.c_vo…

区間ふるいで2^32未満の素数を列挙する

232未満の素数すべてを列挙するアルゴリズムについてのメモ。 ついでに、C++11、Go、Rustの比較もやってみる。 環境 Ubuntu 14.04.4 LTS 64bit版、g++ 4.8.4、Go 1.6.2、Rust 1.8.0 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP …

Raspberry Pi 3にChinachuをインストールするときのメモ

Raspberry Pi 3にChinachuをインストールする際、公式のインストールガイドのままではうまくインストールできないので、対処法のメモ。 ffmpegを自前でビルドする commit 48afd7でスタティックビルド版のffmpegをインストールするようになっているが、スタテ…

C#+WPFでGUIアプリケーションを作ってみる

C#

「JavaFX+FXMLでGUIアプリケーションを作ってみる」では、JavaFX+FXMLを使ってJavaランタイム(JRE)が入っている環境向けのGUIアプリケーションを作った。 ここでは、C#+WPFを使い、.NET Frameworkが入っている環境向けのGUIアプリケーションを作ってみる。…