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

RCTF 2017 供養(Writeup)

CTF

RCTF 2017に参加。185ptで176位。 Sign In (Misc 32) Please join #rctf2017 on Freenode. And the flag is in topic. Format: RCTF{…} RCTF{Welcome_To_RCTF_2017} easyre (Reverse 153) 32 bit ELF実行ファイル。 $ file easy_re easy_re: ELF 32-bit LSB …

Spring Bootでエラーページをカスタマイズする

「Spring Bootで簡単なWebアプリケーションを書いてみる」では、Spring Bootで簡単なWebアプリケーションを書いた。 ここでは、デフォルトのエラーページをカスタマイズしてみる。 環境 Windows 10 Pro、Java SE 8、Spring Framework 4.3.7.RELEASE(Spring …

Spring BootでMySQLを使う

「TomcatとApache HTTP ServerでSpring Bootアプリケーションをデプロイしてみる」では、作成したSpring BootアプリケーションをTomcat上にデプロイした。 しかし、現在の状態ではデータベースとしてH2を利用する状態になっている。 ここでは、アプリケーシ…

TomcatとApache HTTP ServerでSpring Bootアプリケーションをデプロイしてみる

「Spring Securityでユーザ認証を実装してみる」では、Spring Securityで簡単なユーザ認証を実装した。 ここでは、UbuntuサーバにTomcatをインストールし、作成したアプリケーションをデプロイしてみる。 また、Apache HTTP Serverをインストールし、アプリ…

Spring Bootでテストを書いてみる

「Spring Securityでユーザ認証を実装してみる」では、Spring Securityで簡単なユーザ認証を実装した。 ここでは作成したアプリケーションについて、認証処理の挙動に関するテストコードを記述してみる。 環境 Windows 10 Pro、Java SE 8、Spring Framework …

PlaidCTF 2017 供養(Writeup)

CTF

PlaidCTF 2017に参加。236ptで182位。 sanity check (Misc 1) The flag is PCTF{poop} logarithms are hard (Misc 10) What is e1.000000001? Please enter in decimal with 7 places. (For example, if the answer was 2.71828183… the flag would be 2.718…

Spring Securityでユーザ認証を実装してみる

「Spring Bootで簡単なWebアプリケーションを書いてみる」では、Spring Bootで簡単なWebアプリケーションを書いた。 ここでは作成したアプリケーションをベースに、Spring Securityを使ってユーザ認証を実装してみる。 環境 Windows 10 Pro、Java SE 8、Spri…

BCTF 2017 供養(Writeup)

CTF

BCTF 2017に参加。767ptで62位。 Checkin (Misc 69) スコアサーバに表示されているトークンを送る。 $ nc 202.112.51.247 6666 Connection UUID:[redacted] Token:[redacted] bctf{N0_PWN_N0_FUN} monkey (Pwn 327) Spidermonkeyのjsshellが動いている。 hel…

ASIS CTF Quals 2017 供養(Writeup)

CTF

ASIS CTF Quals 2017に参加。1075ptで47位。 Welcome! (Trivia 1) What is the smallest valid flag for ASIS CTF? ASIS{} Start (Pwning/Warm-up 89) ELF 64-bit、NX、canary無効。 $ file Start_7712e67a188d9690eecbd0c937dfe77dd209f254 Start_7712e67a1…

Spring BootでJSONやExcelファイルを返すエンドポイントを作ってみる

「Spring Bootで簡単なWebアプリケーションを書いてみる」では、Spring Bootで簡単なWebアプリケーションを書いた。 ここでは作成したアプリケーションをベースに、APIとしてJSONを返したり、Excelファイルとしてダウンロードするエンドポイントを作ってみる…

Spring Bootで簡単なWebアプリケーションを書いてみる

JavaでWebアプリケーションを開発する際のフレームワークとして、近年Apache Strutsに代わりSpring Frameworkが広く使われている。 ここでは、Springが提供するBootstrapフレームワークSpring Bootを用いて、簡単なWebアプリケーションを書いてみる。 環境 W…

Nuit du Hack CTF Quals 2017 供養(Writeup)

CTF

Nuit du Hack CTF Quals 2017に参加。410ptで113位。 Slumdog Millionaire (Web 100) 10個の疑似乱数を繋げたトークンとして、次に何が出てくるか求める問題。 seedがプロセスIDになっているので、last winningを一つ取得した後65535通りの総当たりで解ける…

April Fools' GTF 2017 供養(Writeup)

CTF

April Fools' GTF 2017に参加。1809ptで15位。 Welcome!! (Misc 555) Please input your password.(Today is April Fool) Today is April Fool がフラグ、かと思いきや何でも通るっぽい。 thinking_face (Trivia 51) Good GTFs always have trivia tasks. (…

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…