#1 あそびあそばせ
あそびあそばせ
アニメ概要
とある3人の女子中学生たち「華子、オリヴィエ、香住」たちが「香住の英語を教えてほしい」という理由だけで「遊び人研究会」という謎の部活を作り、そこでくだらなくも面白い、振り切った青春を謳歌する、神アニメである。
登場人物の構成として、「華子:リア充になるためにテニス部に入った非リア腐女子系の全力バカ」、「オリヴィエ:英語が出来ない外国人で、ルックスがいいのにワキガで常に何も考えていない適当少女」、「香住:優等生インドアなのに英語が2点で、怒ると豹変する隠れ腐女子」が主人公であり、彼女らがただただ非リアのバカ騒ぎをする。
しかし、どんなにしょうもない遊びでも無駄に命を懸けているので、そこが非常に面白く、華子の性格の悪さとオリヴィエの雑さ、香住のツッコミがとても病みつきになる日常アニメだ。
好きなキャラ
※更新中
一番印象に残ったシーン
- オリヴィエが香住と「あっちむいてほい」をやったシーン
このシーンは、オリヴィエが香住に対して「あっちむいてほい」を挑み、胸をビンタして怒らせるという内容だ。
ここで面白かったのは、香住の復讐劇である。オリヴィエのビンタ後に香住が復讐心丸出しの顔をして「あっちむいてほい」の再戦を申し込み、あっちむいてほいといった直後になんと「チョキで鼻を上向きに貫いた」のである。想像するだけでかなり面白い上に作画の表現でしっかりとオリヴィエの顔面を崩壊させてくれている。予想外の反撃な上にやっていることがしょぼすぎるのだが、私はこのシーンを見てあそびあそばせが好きになった。
以降もこのような戦いは多いが、やはり「鼻をつんざく破壊力」は1番面白かった。
全体を通しての感想
※更新中
その他
今回使用させていただいた画像は、ククナッツさんという方のイラストをお借りしました。 著作権や使用上に問題があれば差し替えたり、対応させていただきますのでご連絡ください。素敵なイラストありがとうございました。
gdb-peda メモ
gdb-pedaのコマンド「pattern_create、patto」
pattern_create(文字列作成)
・指定した数の文字列を作成してくれるコマンド
(例) $pattern_create 50 → O%MR*=;NXSL[+EI,:&J/?.#B\$QG"@CUT](<'P!-VHYAK)WF>D 50文字のランダムな文字列が生成される。bofに便利
patto(順番の特定)
・入力した文字列の場所を特定してくれるコマンド
(例)$patto ABCD → found at offset: 44
結果に出てきた数字がAの場所になる。
~~多分追記する予定なので、今のところちょいメモするだけに留まっています~~
初心者による勉強法の試行錯誤
CTFの勉強法の推移
1.CTFを知る前 [策謀本] (17.7~18.4)
教授から勧められた「策謀本」を買ったが、当初はC言語始めて半年以内だったためわけわかめ状態で挫折。
この当たりで専門書を買うのがブームになり、本屋でハリネズミを見つけて購入(ここでCTFの存在を知る)。
その後CTFTimeに登録し、ハリネズミ本を読み進めるも知識不足で分からず、積む。
・・・とりあえずやってみて諦めかけた
2.常設問題、ハッキングラボ(18.5~19.9)
何かいいやり方はないかと探している際に、常設問題があることを知り、cpawctfやってみる。
面白いし、writeupがあれば解けるのでちびちびやりながら何とか埋めることができ、競プロ等もやったりしていた。
そんな中でseccon beginnersの申し込みをしようと思ったが時、すでに遅しで終わっていた。
ハッキングラボ本が出たので迷わず買い、kail linuxの設定をしたりwindowsのハッキングをしている間に19年の夏が過ぎた。
・・・常設問題をスローペースで解き、少しずつCTF周りの基本が分かり始めた
3.初心者向けの常設問題、勉強会に参加(19.10~19.12)
19年のseccon beginner 東京を申し込むと無事当選し、他の人たちを見てめちゃくちゃ刺激を受け、やる気が全開になった。
今までは、常設問題や専門書をやったりしていたが目標や参加者たちがイメージできずに楽観していた。 しかし、リアルに解いている人を見たり、することで強くなりたいと心から思った。そこから勉強方法などを調べ始めた。
常設問題を調べまくった結果、picoCTF、over the wireという超初心者でもwriteupを参考にしながらすこし解けるサイトを発見。 これならば、ヒントもあり初心者向けになっているため数をこなして力をつけようと思った。
picoCTFは毎日ひたすらやりこみ、over the wireのbanditを全てやりきった。 NRI secure netwarsも申し込み、無事にこれも当選。面白かったけど、全然解けなかったためもっとやろうと思う。
・・・成長スピードを意識し、他者に勝ちたい、強くなりたいと感じた。
・・・初心者向けの常設で経験を積み、オンライン大会でぶちのめされるを繰り返す
このころから基本知識も必要と感じ、「リバースエンジニアリング、徳丸本、python通信本」など図書館で借りまくった。 しかし、借りすぎて満足していた節があったが、リバースエンジニアリングについては何度も読んだため、一定の知識がついた
4.オンライン大会にも挑戦し、常設をやる(20.1~20.2)
就活もあり、ペースダウンしたがpicoCTFを引き続きやっていき、18,19を両方やり終えた。 オンライン大会等に挑戦するも、難しくてあまり解けない。stringsレベルのしょぼい問題しか解けない。 でもひたすら解いて、writeupを見たりしていた。
・・・このあたりで今の勉強スタイルについて考え直した。
・・・初心者向けの常設+オンライン大会をやっているが1人で全ての分野をまんべんなくやっている
・・・浅く広くが浅すぎ、成長スピードが遅すぎる。これは分野を絞ってやったほうがいいのではないか
5.「Pwn、web」ジャンルを主として挑戦中(20.3~)
分野を「Pwn」、「web」の2つに絞って挑戦をしていっている
やはり数をこなすことは絶対に必要であるため毎日手を動かすが、分野を絞ることで知識が分散するのを防ぐ
常設、専門書(徳丸本、策謀本)等で練習をし、オンライン大会でやってみて成果を見るという方針で今はやる
また変わるかもしれないが、現状はこの形でしばらくやってみて結果を出したい。
まとめ
CTFのおすすめの勉強法や常設問題等がありましたら、教えてもらえるとうれしいです。 ちなみに、以下に自分の知ってるオススメの常設問をのせておくので良かったら参考にしてください。 難しいですが、とても楽しい競技なのでみなさん頑張っていきましょう!
CTFショートカット
・最初はこれ
picoCTFはヒントもあり、writeupも充実しているため、全くIT知識が無い方でも検索力で解けるレベルになってます。 情報系の知識がある方なら入りとしてすごくやりやすく感じると思います。
2018game.picoctf.com 2019game.picoctf.com
2018のwriteup 2019のwriteup ↑ 非常にわかりやすく、とても参考にさせていただきました。 kusuwadaさんありがとうございました。
overthewire.org ↑ banditではssh接続が必要ですが、そのあたりも調べながらやると知識が付くのでおすすめです。
・次はこのあたり
上記をやった後にcpawctfをやると意外と解きやすいと思います。 僕は最初にcpawをやっていて、次にpicoだったためレベルダウンしましたが、picoの次にやるとすごくいいと思います。
企業のCTFなども問題数が少なめなので、じっくり取り組めるためオススメです。 mnctf.info score.maguro.run
・難しいやつ
ctf.lse.epita.fr ksnctf.sweetduet.info
「pwnとオンライン大会用ポータル」
pwn専用の常設です
pwnable.kr
pwnable.tw
オンライン大会です ctftime.org
Markdown記法メモ
見出しシリーズ+目次
#タイトル :タイトルのサイズ
####見出し : 普通の見出しサイズ
[:contents] : 目次自動生成
太字、リスト、htmlぽいの等
**太文字**
*斜体*
~~取り消し線~~
**_太文字と斜体_**
-リスト(●:大リスト)
-リスト(○:中リスト)
こんな感じでタブ1つぶんくらい空ければいい。
<u>下線</u>
<span style="font-size: 文字サイズ(~%)"></span>
<span style="color: 色コード(##ff0000など)"></span>
ソースコード
<p>あいうえお</p>
リンク、画像
リンクボタンを押してやる or [リンク名](url)
![画像名](画像のリンク)
picoCTFによる pythonリモート接続の学び
python3でのpwntools
picoCTF2018のgot-2-learn-libcという問題を解いた際に、pwntoolsを使いpythonからssh接続を行った。その時に「set_working_directoryの設定で詰まったため」、メモを残しておく。
set_working_directoryについて
内容については、システムコールの変数を元にshellを取るもので、参考にさせてもらったkusuwadaさんの記事では、systemとfflushのオフセットを元に解いていた。
そこで用いていたpythonコードの中で
# picoCTF の shell serverに接続 print('picoCTF shell server login') print('name:') pico_name = input('>>') print('password') pico_pass = input('>>') pico_ssh = ssh(host = '2018shell4.picoctf.com', user=pico_name, password=pico_pass) pico_ssh.set_working_directory('/problems/got-2-learn-libc_4_526cc290dde8d914a30538d3d0ac4ef1')
という部分があり、その中の
pico_ssh.set_working_directory('/problems/got-2-learn-libc_4_526cc290d~')
にて下記のようなエラーが出ていた。
これを調べてみたところstring型とbyte型は結合できないというエラーということが分かった。
さらに調べたところ、python3のソケット通信では送信はbytes、受信はstringになるとうことがこの記事から分かり、文字列をbytesにエンコードする必要があると分かった。
そのため、下記のように .encode()でbytes型に変換してやることで無事に通信ができた。
#picoctfに接続
print('picoCTF shell server login', end='')
print('name:', end='')
pico_name = input('>>').rstrip()
print('password', end='')
pico_pass = input('>>').rstrip
pico_ssh = ssh(host = '2018shell4.picoctf.com', user=str(pico_name), password=str(pico_pass))
pico_ssh.set_working_directory('/problems/got-2-learn-libc_1_ceda86bc09ce7d6a0588da4f914eb833'.encode())
ちなみに、改行が入るとtracebackというエラーで繋がらないためprintの後はend=''にしてあり、pwntoolsはpython3にしてpython3 ~.pyの形で実行した。
まとめ
これからもCTFの学び、やったことを書いていけたらいいなと思う。
また、日本語はまだまだへたくそなのでたくさん書いて練習したい。
CTFについても楽しいのでbinary, pwnを中心にレベリングしよう。
練習2回目 (今後について)
これから書いていく方針について
これからは、以下の3つを主に書いていこうと思う。
- CTFについて
- 就活について
- 技術的備忘録
- その他備忘録
詳細
- CTFの勉強、オンライン大会に関する感想、学びを書く
- 就活について、躓いたり書き留めておきたいことが出来たときに書く
- 技術的に新たな学びがあったときに書く
- その他、雑学等で学びがあったときに書く
このように大それたことを書いておりますが、要するに書きたいものを書きたいように書くものになります。備忘録的なメモとして残すものなので、もし誰かが躓いた際に参考になればうれしいと思います。