つくばなう 2014年5月1日 No Comments
お久しぶりです。ゆったんです。
先日、長年住んでいた山形県を離れ、筑波大学に進学するため茨城県つくば市に引っ越しました。
風邪ひきました()
引っ越してから大体一ヶ月が経ち、忙しさも落ち着いてきたけれど、
まだ慣れてない部分もある。つくばの水が飲めない()
…山形は水が美味しかった。
自分の意思でこっちに飛び出してきたのに、結構山形に帰りたさがある。
いわゆるホームシックかな。
山形まではわりと距離があって、金銭的にも帰れる機会はあまりないのでつらい。
つくばに引っ越してから、いろんな友人ができて、いろんな話を聞けて、すごい楽しいです。
山形にいた時よりも、いきいきとしている気がする。
そんなわけで、大学生活初めの1ヶ月はとても充実していた。
むしろ、大学生活の1/48がもう終わっちゃったんだなぁと思うと寂しい。
48ヶ月って結構短いので、いろんなことにチャレンジしたいです。
フル単するぞ~~~~~~~~~~~(白目)
RuCTF Quals 2014 2014年3月11日 No Comments
We joined RuCTF as wasamusume at NetAgent co.
Thanks NetAgent for lending us room !
Adding to default mekmbers , op, tpdn, haru joined with us.
Recon
We could login tereglam as mpiada balalaykina.
Then We realized we can change names , and delete messages!
In IRC, there were some people who belive the flag we camouflaged correct .
We enjoyed seeing it ! HAHAHA ..Sorry 🙂
SYN/CHOKU DAMEDESU
SECCON 2013 CTF オンライン予選 2014年1月26日 No Comments
どうも、ゆったんです。
いつものwasamusumeのメンバーにzipさんを加えた、ほぼフルメンバーでSECCON 2013 CTFオンライン予選に参加しました。
非常に楽しかった。
では、とりあえずNetwork_Web300の解説します。(ほかについては近々追加する予定)
問題として、上のような画像ファイルが渡される。
カテゴリを考えると、おそらく何かしらのデータがこのjpgファイル内に隠されているのだろうとめどをつけて
バイナリエディタに投げ込んで目grepしてみると、tcpdumpファイルのヘッダが見つかるので抜き出す。
切り取ったtcpdumpファイルをWiresharkに投げ込んでみると、逆引きしていることがわかる。
チームメイトが逆引きしてFlagをSubmitしたのですがAcceptされず、私も逆引きしてみると、
Acceptされなかったのは”.”が抜けてたのが原因だとわかった。
$ nslookup 10.95.133.134 133.242.55.252
とnslooupを叩いて逆引きをした結果、下のような文字列が返される。
You.G0t.a.Hidd3n.m3ss4g3.1n.Th15.DNS.
というわけで
答え: You.G0t.a.Hidd3n.m3ss4g3.1n.Th15.DNS.
インラインアセンブラ 2013年10月20日 No Comments
Cのなかに__asm__()とかでアセンブリ記述するアレがインラインアセンブラなわけですが、
とあるイケメンの人のやろうとしていたことを数人でやっていたのけれども
なかなかうまくいかなかったのでかいてみる。
アセンブリのコード
.intel_syntax noprefix .text .global main main: xor eax,eax push eax push 0x64726c6f push 0x77206f6c push 0x6c656800 mov ecx,esp mov eax,4 mov ebx,1 mov edx,14 int 0x80 mov eax,1 dec ebx int 0x80
見ての通り、hello world という文字列を出力するアセンブリのコード。
これをインラインアセンブリで書いてみると、
int main(){ __asm__( ".intel_syntax noprefix nt" ".global func nt" "func: nt" "xor eax,eax nt" "push eax nt" "push 0x64726c6f nt" "push 0x77206f6c nt" "push 0x6c656800 nt" "mov ecx,esp nt" "mov eax,4 nt" "mov ebx,1 nt" "mov edx,14 nt" "int 0x80 nt" "mov eax,1 nt" "dec ebx nt" "int 0x80 nt" ); return 0; }
まぁんで、普通にコンパイルするなら、
$ gcc hello.c -masm=intel
って指定するんだけど、
".intel_syntax noprefix nt"
って記述してるわけだし、 -masm=intel つけなくてもコンパイルできるんじゃね?って話。
実際、-masm=intel を指定しない場合で、.intel_syntax noprefix と記述しているときには
$ gcc hello.c /tmp/ccOPOda9.s: Assembler messages: /tmp/ccOPOda9.s:34: Error: no such instruction: `movl $0,%eax' /tmp/ccOPOda9.s:35: Error: no such instruction: `popl %ebp'
記述されていない時には、
$ gcc hello.c hello.c: Assembler messages: hello.c:4: Error: too many memory references for `xor' hello.c:9: Error: too many memory references for `mov' hello.c:10: Error: too many memory references for `mov' hello.c:11: Error: too many memory references for `mov' hello.c:12: Error: too many memory references for `mov' hello.c:13: Error: operand size mismatch for `int' hello.c:14: Error: too many memory references for `mov' hello.c:15: Error: no instruction mnemonic suffix given and no register operands; can't size instruction hello.c:16: Error: operand size mismatch for `int'
っていうように、明らかに .intel_syntax noprefix という記述は反映されてるっぽい。
コンパイルエラーみてると、なんか内部的に intel表記からAT&T表記に
コンバートしてる感もあるんだけど、これって、-masm=intel を付けないでも
どうにかすればコンパイルできる気はするんだけど、わからない。
だれか知っている人いれば教えていただけると嬉しいです。
gccの仕様でできないとかそういうのだったりするのかな….
追記:
こおしいず氏が解決してくれた。
gccでinline assemblyしたとき – cookies.txt .scr http://cookies.hatenablog.jp/entry/2013/10/21/203345
gdbでbreakかければ/tmp/以下のファイル消える前に
見れると思ったけどunlinkにかけるべきだった。
技術力不足で辛い。
ありがとう!
筑波大学 情報学群情報科学類AC入試において合格しました。 2013年10月18日 No Comments
先日、筑波大学 情報学群情報科学類AC入試を受験し、合格することが出来ました。
思い返せば、ここ2年間は、たくさんの経験をし、たくさんの人と出会い、
現実なのだけど、夢のような時間を過ごしてきました。
この合格は、沢山の人々からの贈り物だと思っています。
本当にありがとうございます。
今後は、受験を控える同級生のサポートをしながら、
自分自身もセンター試験に向けて、また情報系の勉強なども頑張っていこうと思います。
今後の私を、温かい目で見てあげてください。
wishlistリスト受け付けていますw よろしくおねがいします。
セキュリティキャンプ中央大会2013に参加してきた!(テキスト版) 2013年8月24日 3 Comments
ってことでみんなが読めるようにテキスト版です。
前回のはキャンプ生じゃないと内容もわかりづらかったと思うので、
文章も直しています。
先日8/13~17に、千葉県千葉市にあるクロスウェーブ幕張で行われた、
セキュリティ・キャンプ中央大会2013に参加してきましたよっ
セキュリティキャンプ2013に参加してきた!(暗号版) 2013年8月18日 No Comments
追記:テキスト版書きました。
セキュリティキャンプ中央大会2013に参加してきた!(テキスト版)
とりあえず暗号化して載せます。
Softwareの人なら気づいてくれると思う。
そうでなくてもPDFの中みてみるとたぶんわかる。
ちなみに問題ファイルはPDFではない。
ヒント:PDFの中のデータの一部は何かでエンコードされてるよね
頂いたものについては写真を載せます。
Network系のものが多いかと思いますが、ぼくはSoftwareです。
提供してくださった方々、本当にありがとうございます。
後日、ちゃんと読めるものをブログに掲載します。
ちょっと手を加えると思う。
高専カンファレンス sendai2 に参加してきた! 2013年8月7日 No Comments
先日8月6日に行われた、高専カンファレンス sendai2 に参加してきました。
今回のは、仙台高専が主導となって開催されたものです。
http://kosenconf.jp/?072sendai2
やぎにいちゃんに誘われて参加したのですが、
まわりが高専生ばかりでめっちゃびびってたりしてましたが、
なんというか、会場の雰囲気とか、みんなのノリとか、
本当に楽しかったです。ああいう雰囲気は本当に好きです。
えっと、結構印象に残ってるのは、
このかさんのフランスステイの話、双葉さんのセーラー服(ぉぃ)、
なおさんのアマチュア無線のお話ですね。
フランスステイの話を聞いていて、このかさんすげーって思った。
僕も機会があれば海外に行って、異文化を楽しんだりしてみたいです。
セーラー服、え、まじかwwwwって感じでめっちゃ面白そうで期待していたのですが、
期待を裏切らない面白さでしたw
(双葉さんの顔文字見てて、ちょっとておくれ感を感じたり(いい意味ですw
あと高専についての話もしていたのですが、
なんというか、高専、やっぱり楽しそうだなって。
高専いかなかったことを後悔はしていませんが、
羨ましさを感じました。
(F^o^)<じゃあやるか~~~~~~~~~~~~!
(特に意味はないです、ええとカンファ見た人ならわかると思いますw
最後になおさんのアマチュア無線、すごいかっこいいと思えたし、
すごい興味をもちました。大学入ったらやってみたいです。
あとは、仙台高専のアンテナの数にびっくりしましたね。。。
さすが元電波高専って感じで、圧倒されました。。。
ってかみなさん、アマチュア無線の資格持ってる人多いですね(うらやましい
あ、そういえば僕もLTしてきました。一応載せておきます。
[slideshare id=25018567&doc=kosenconfsendai2lt-130807051943-phpapp02]
でもで使ったプログラムのコードも載せます。汚いです。脆弱性モリモリです。
ちなみにFedora 17 x86で、gccでコンパイルしました。
#include<stdio.h> #include<stdlib.h> int main(){ char buf[256]; char msg[128]; fgets(msg,128,stdin); snprintf(buf, sizeof(msg), "echo %s ", msg); system(buf); return 0; }
OSコマンドインジェクションしました。
ちなみにその時のフラグは、
RkxBR19HZW5naGlzS2hhbg==
えっと、base64でデコードしてあげると、
FLAG_GenghisKhan
です。(ここで笑いがとれてよかったw
あと、当日の質問への返答で、ちょっとここで補足しておきます。
base64のことを当日は暗号技術云々といってしまいましたが、正しくは
[NOTE]
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MINEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。具体的には、A–Z, a–z, 0–9 までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる。この変換によって、データ量は4/3(約133%)になる。また、MIMEの基準では76文字ごとに改行コードが入るため、この分の2バイトを計算に入れるとデータ量は約137%となる。
[/NOTE]
引用:wikipedia
あと、CTFはやっぱりLinuxでやるべきなのかという質問について、
必ずしもそういう必要はなく、実際にwindows使ってる人もたくさんいます。
webな問題であれば、ブラウザさえあれなどうにかなります。
僕自身はPCのスペック上、Linuxだけでやってますが、
windowsの上に仮想マシンでLinuxを動かす、というのも全然問題ないです。
ただしバイナリ問題では、windows用のバイナリを渡されれば、(wine等を使わなければ)Linuxでは動かせませんし、
逆もしかりです。
どちらの環境も用意するのが、いいと思います。
あとはアーキテクチャ(x86とかx64とかARMとか)でも実行可能かどうかは変わるので、
そこも注意です。
(最近はx64のバイナリが多いので、x64のwindowsとかLinuxをセットアップしたほうが良さそう
ARMに関しては、QEMUなどの仮想マシンを使いましょう。
ってことで、みなさんもCTFしてみてくださいw
最後に、非常に楽しかったです。
運営の方々、参加者の方々、本当にありがとうございました。
SecurityCamp2013 SoftwareSecurityClassに参加します! 2013年6月20日 No Comments
SecurityCamp2013 SoftwareSecurityClassへの参加が決まりました!
選考結果が明日送られてくると聞いていたのですが、
Twitterみたらみんなが受かった!とかいってるのを見て、
ドキドキしながら確認してみると、
SecurityCamp事務局からメールが何通か届いていて、
「もしかして…!!」
とドキドキしながら開いたら、合格通知がありました。
いまでもその時のドキドキ感とうれしさを抑えきれませんw
そういえば、同じwasamusumeのメンバーのあたがわさんやこおしいず氏も、
チューターとして参加するので楽しみ。
なんこつちゃんともまた会えるみたいだし、本当に楽しみです。
まずは、キャンプに向けて、もっともっと学んでいきたいです。
そして、応募用紙に書いた、自分の目標が達成できるような糸口を見つけられるよう、
キャンプでも頑張って行きたいと思います。
キャンプに参加する皆さん、よろしくお願いします。
また、今までお世話になった方々にも感謝しつつ、今後とも頑張っていきます。
バブルソートを実装してみた。 2013年5月21日 No Comments
久しぶりにプログラミングネタ書いてみます。
https://twitter.com/0x00e6/status/336612233138282497
なんこつちゃんがこんなことをいってた。
…バブルソートってなんだ…?
[NOTE] バブルソート
バブルソート (bubble sort) は、ソートのアルゴリズムの一つ。隣り合う要素の大小を比較しながら整列させること。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、また並列処理との親和性が高いことから、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。(単に交換法と言う場合もある)
引用:Wikipedia
[/NOTE]
というわけで、早速書いてみた。もちろんCで実装。
#include<stdio.h> int main(){ int num,i,j,tmp; int x[num]; puts("Put numbers you want to sort."); scanf("%d",&num); for(i = 0;i < num;++i){ //読み込み scanf("%d",&x[i]); } for(i = 0;i < num;++i){ //後ろからチェックしていく for(j = num-1;j > i;--j){ if(x[j] < x[j-1]){ //交換 tmp = x[j-1]; x[j-1] = x[j]; x[j] = tmp; } } } for(i = 0;i < num;++i){ printf("%d ",x[i]); } puts("nSorting is done."); return 0; }
ささっとかいたので、ちょっとアレかもしれないです。
昇順にソートしてるけど、ソートしてる時の処理の、
if(x[j] < x[j-1]) を if(x[j] > x[j-1])
とすれば降順になります。
ソートたのしいですね!(ぁ
最近のコメント