OCamlで簡単なプログラムを書いてみる

プログラミング言語のひとつであるOCamlで簡単なプログラムを書いてみる。 環境 Ubuntu 16.04.2 LTS 64bit版、OCaml 4.02.3 $ uname -a Linux vm-ubuntu64 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ l…

「Can We Prevent Use-after-free Attacks?」というタイトルで発表した

ssmjp スペシャル 〜すみだとささみとみちおさん〜のお知らせ – ssmjp Infomation ssmjpスペシャル(2017/06/04) - すみだセキュリティ勉強会 2年前に発表していた勉強会が久しぶりに開催されるということで、Use-after-free攻撃の原理と対策について話した。…

LWE格子暗号による暗号化をやってみる

近年、量子コンピュータ研究の進展により、量子コンピュータでも解くのが難しい暗号(Post-quantum cryptography; 耐量子計算機暗号)への注目が高まっている。 ここでは、耐量子計算機暗号のひとつであるLWE格子暗号の原理を説明し、単純化したアルゴリズム…

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年に公表された…