毎年恒例!(でもない)年始の目標宣言タイム
学業
スポーツとか
- スキーサークルとボウリングサークルとかプログラミングサークルに入りましょうね。
- 競プロは2000Solved行きましょう。 AtCoderは黄色がいいですね。
- ボウリングはアベレージ180とかいけたら嬉しいな〜
他
- なんかしらの大会で優勝しましょう
kosen13'sのアドベントカレンダーの18日(超スーパー遅刻)(すみません)。
特に書くことが思い当たらなくて発狂したので、たわしが金沢高専在学中にやったことを書きたいと思います。
高専という存在に興味を持ったのは中学1年生くらいの頃だったと思います。
「パソコンカタカタで生きていける進学先なのか〜良さそう〜」とか思ってました。
(ここから読み飛ばしてOK)
気がついたら中学二年生で不登校になって、当時の担任に「留年する?」みたいなことを言われた記憶があります。
そんなこんなで気がついたら中学三年生の夏休み前で、そろそろやばいなと思って学校行き始めた頃には成績が悲惨なことになってました。
(当時の成績 国語 70点 / 数学 30点 / 英語 30点 / 理科 95点とか / 社会 60点くらい )
第35回記念大会 FE部門結果 全国高等学校IT・簿記選手権大会-主催:学校法人立志舎-
第7回 全国高等学校 情報処理選手権 参加記 - たわし日和
第20回サイバー犯罪に関する白浜シンポジウム&第11回情報危機管理コンテスト
↓こういういたずらをチームメンバーがしてました。
SECCON 2016決勝大会に出題してきました! | セキュリティ対策のラック
ICEED2017を開催 学生が国際学会で研究発表 - NEWS & TOPICS|金沢工業高等専門学校
結局たわしは何をしたかったのだろうか...
KOSENセキュリティコンテストに金沢高専チーム SandBoxで出場しました。
3300点で3位でした。1位取らないと担任に煽られるので悲しい。明日学校に行きたくない。
10/23 14:20追記
煽られました。
担任「こんなんで勝てないんなら、大学編入した後こういう大会で1位になるのは2-3年は無理やな」
というわけでWriteUpを書きます。
これはサンプル問題である。今回出題される問題は、全て答えとなる「フラグ」が含まれている。フラグは、必ずSCKOSEN{hoge}の形式になっている。この問題のフラグはSCKOSEN{Let's enjoy}である。入力しろ。
問題文が命令口調。
SCKOSEN{Let's enjoy}
正しいフラグを書けば正しいかどうかを判定してくれる、便利なアプリを開発した。フラグを調べて入力せよ。
(添付: a.out)
問題文が命令口調。 とりあえずfileします。
file a.out a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=d4f77b6523796400a4367a33eec053d50ec2761b, not stripped
なるほど。とりあえずバイナリエディタで開く。
適当に整形して
SCKOSEN{h1dden_f1ag}
フラグは簡単だ、ファイル名に隠した。
(添付: q)
問題文(ry とりあえずfileします。
file q q: gzip compressed data, last modified: Thu Oct 19 04:49:39 2017, from Unix
もしかしてこの時期から準備ですか。大変ですね。展開します。
mv q q.gz gzip -d q
またqができました。
file q q: POSIX tar archive (GNU)
>||tar -xvf q||<で失敗してるっぽいので
strings q -n 10 | grep "SCKOSEN" q/SCKOSEN{ki_ha_mori_ni_kakuse}
SCKOSEN{ki_ha_mori_ni_kakuse}
とあるゲームを見つけたのだが、ボスがあまりに強すぎて一切倒せそうにない。どうにか倒す方法はないだろうか。
(nc hogehoge@hoge.com 114514)
とりあえず接続してみる
nc hogehoge@hoge.com 114514 Input your name: Player's HP: 768 Boss's HP: 12345678 Next round=> Round 1/10 Player's Attack! Boss's HP: 12345667 (-11) Boss's Attack! Player's HP: 602 (-166) Next round=> Round 2/10 Player's Attack! Boss's HP: 12345658 (-9) Boss's Attack! Player's HP: 427 (-175) Next round=> Round 3/10 Player's Attack! Boss's HP: 12345649 (-9) Boss's Attack! Player's HP: 252 (-175) Next round=> Round 4/10 Player's Attack! Boss's HP: 12345639 (-10) Boss's Attack! Player's HP: 120 (-132) Next round=> Round 5/10 Player's Attack! Boss's HP: 12345630 (-9) Boss's Attack! Player's HP: 0 (-121) You lose
なんて理不尽な。Input your name:に適当にでかい値入れればバッファオーバーフロー的なにかでうまくいくんじゃないかと考え、
適当に大きい数字を入れるとBoss's HPがとても小さくなって嬉しい!(睡眠不足なので考えるのがめんどくさかった)
ボスを倒すと Flag is SCKOSEN{buffer_over_flow!}と出力されるので
SCKOSEN{buffer_over_flow!}
このファイル'raw.dmg'には、どうも独自のファイルシステムが構築されているらしい。
このファイルシステムに格納されたデータは1つ、そのデータを復元しよう。
このファイルシステムは、クラスタ単位で管理されており、1クラスタ=4096byteであることは分かっている。また、AllocationTableというFATファイルシステムでいうFAT領域とディレクトリエントリ、データ格納領域に分けられているようだ。また、 GUID Partition Table (GPT)でフォーマットされているので、その分はクラスタの管理外である点に注意しなければならない。ATは2byte*8192、ディレクトリエントリは32byteで下記の構造体で定義されているらしい。
``` struct directory_entry { unsigned char magic;(1byte) char filename[8]; char extension[3]; unsigned int size;(4byte) unsigned long offset_of_cluster;(2byte) char attribute[12]; unsigned long reserved; (2byte) }; ```
(添付 raw.dmg)
強実装には競技プログラミングスキルで戦う。
適当にバイナリを読んでいくと、
AllocationTable(FAT領域)の始点 - 1048576
2byte(ビッグエンディアン)(確か)次のデータが格納されているクラスタ番号が記録されてる
ディレクトリエントリの始点 - 1064960
unsigned char magic - 0f
char filename[8] - flag.zip (ファイル名が書いてある)
char extension[3] - 00 00 00 (これは何かわからん)
unsigned int size (4byte) - 1042202 B (ファイルの大きさ)
unsigned long offset_of_cluster - 1533 (これ、何か最初わからなかったんだけど、AllocationTableのファイルの始まりを示すクラスタ番号が書かれているレコードを示している。)
1 クラスタ 4096 B
こんな感じのことがわかる。
なので適当にくっつけてワイワイやってくれるやつをJavaで書いた。なぜJavaなのか。それは弊高専の公用プログラミング言語だからである。(は?)
クソプログラムがこちら。(寝起きクオリティです。目が潰れます。)
public class OreNoFS { public static void main(String[] args) { File f = new File("../../Desktop/raw.dmg"); File o = new File("../../Desktop/flags.zip"); try { InputStream fr = new FileInputStream(f); BufferedInputStream br = new BufferedInputStream(fr); byte[] b = new byte[br.available()]; br.read(b); System.out.println(b.length); int start = 1134592; ArrayList<ArrayList<Byte>> list = new ArrayList<>(); for(int i = start; i < b.length; i += 4096) { byte[] bb = new byte[4096]; ArrayList<Byte> li = new ArrayList<>(); if(i + 4096 > b.length) break; for(int j = 0; j < 4096; j++) { li.add(b[i + j]); } list.add(li); } int atStart = 1048576; int[] at = new int[8192]; for(int i = 0; i < 8192; i++) { int index = i * 2 + atStart; at[i] = Byte.toUnsignedInt(b[index]) + Byte.toUnsignedInt(b[index + 1]) * 256; } HashMap<Integer,ArrayList<Byte>> map = new HashMap<>(); ArrayList<Integer> indexList = new ArrayList<>(); for(int i = 1533; i < at.length; ) { if(at[i] == 0 || at[i] == 65535 || at[i] == 65527) break; System.out.println(at[i]); int index = i - 21; i = at[i]; ArrayList<Byte> bl = new ArrayList<>(); for(int j = 0; j < 4096; j++) { bl.add(b[start + index * 4096 + j]); } map.put(at[i],bl); indexList.add(at[i]); } //Collections.sort(indexList); ArrayList<ArrayList<Integer>> pk = new ArrayList<>(); for(int i = 0; i < indexList.size(); i++) { ArrayList<Integer> ll = new ArrayList<>(); ArrayList<Byte> bbl = map.get(indexList.get(i)); for(int j = 0; j < bbl.size(); j++) { ll.add(Byte.toUnsignedInt(bbl.get(j))); } for(int j = 0; j < ll.size(); j++) { //System.out.println(ll.get(j)); } pk.add(ll); } for(int i = 0; i < indexList.size(); i++) { System.out.println(indexList.get(i)); } FileOutputStream os = new FileOutputStream(o); BufferedOutputStream bo = new BufferedOutputStream(os); for(int i = 0; i < pk.size(); i++) { for(int j = 0; j < pk.get(i).size(); j++) { bo.write(pk.get(i).get(j)); } } bo.flush(); } catch (Exception e) { e.printStackTrace(); } } }
これをやるといい感じにファイルができるんだけど、どうやら末尾が出ていない。寝不足(寝起き)なので末尾が出ていないバグプログラムを書いてしまった。
どうやら末尾が正しく出てないようなので、ATを参照して末尾のクラスタの始点アドレスを計算して適当にバイナリエディタで切り取り貼り付け。
zipファイルの完成。
中身はこれ。
SCKOSEN{do_not_be_evil_do_the_right_thing}
その通りですね。
ファイルからフラグを探せ
こんな感じのファイルがもらえる。
どう見てもBase64ですね。
Decodeすると
こんな感じ。 先頭が 4B 50 04 03で始まるので多分zipを2byteごとに交換していったやつだと思うのでプログラムを書いて出力
結果はdocファイルみたいな感じでした。
SCKOSEN{TEXT_BUT_NOT_PLAIN}
ファイルからフラグを読み取れ!
好きですこの問題タイトル。
解凍すると中身はxor.pngとmask.png。
もう答えですね。しかも薄目で見るとフラグが見えます。
合成すると見えるぞ答えが!(スペシャルねこまんまなやつを使うと良いです。)
SCKOSEN{simple_visual_cryptography}
U0NLT1NFTntiYXNlNjRfaXNfdmVyeV9lYXN5fQ
すごくBASE64ですね。デコード。
SCKOSEN{base64_is_very_easy}
How can you break RSA encryption?
なんか完璧そうな感じに見えた。こういう時はとりあえずfermat法で素因数分解。
SCKOSEN{Cl0s3_9r1m3_1s_n0t_s4fe}
Same modulo, different key.
That means...?
問題文、答え言ってますね。
Common Modulus Attackです。
ちなみに途中まで数値が間違ったものだったので無限に時間を溶かしました。
質問投げたチームの人ありがとう。
SCKOSEN{Comm0n_Modu1us_d1ff3rent_pubkey_1s_n0t_s4fe}
解けませんでした!英語ができない高専生です!
名前は何か。 SCKOSEN{___}の形で答えよ。
CVE-2017-13077
CVE-2017-13078
CVE-2017-13079
CVE-2017-13080
CVE-2017-13081
CVE-2017-13082
CVE-2017-13084
CVE-2017-13086
CVE-2017-13087
CVE-2017-13088
2017年でめっちゃ連続でCVE番号ある感じ。これは普通の脆弱性(BoFとかそういうの)ではないですね。最近といえばKRACKsですね。
打ったら出ました。
SCKOSEN{KRACKs}
DHCPは便利なプロトコルであるが、IP対応機器に対してしかIPアドレスを配布できない問題がある。1998年、この問題を克服した画期的なプロトコルが提案された。
その提案のタイトルをSCKOSEN{___}の形で答えよ。
なお、スペースはアンダースコア(_)に置きかえよ
キーワードは 「プロトコル」、「画期的」、「1998年」、「提案」、「DHCP」ですね。
提案とプロトコルからRFCが連想でき、画期的、1998年、RFCからジョークRFCが連想できます。
RFC 2322 - Management of IP numbers by peg-dhcp ですね。 洗濯バサミ〜〜
SCKOSEN{Management_of_IP_numbers_by_peg-dhcp}
情報セキュリティの三要素、SCKOSEN{___}の形で答えよ。
試合開始前のビデオで飽きるほど言ってましたね。
「機密性」(Confidentiality)、「完全性」(Integrity)、「可用性」(Availability)です。
情報セキュリティスペシャリスト試験ぶりに思い出しました。
SCKOSEN{CIA}
ここにある通信をキャプチャしたファイルがある。この中からフラグを見つけ出せ!
(添付 pcapng)
とりあえずstrings
strings problem.pcapng SCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSESCKOSE N{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wakeN{wake _on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la_on_la n_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_an_is_a 1~_z lerm}
ちなみにpcapファイルを読むと、WoLパケットの送り先のMACアドレスがフラグでした。
私はいつも寝坊気味です。
SCKOSEN{wake_on_lan_is_alerm}
ここにある通信をキャプチャしたファイルがある。この中から、フラグを見つけ出せ。
(添付 pcapファイル)
pcapファイルを開くと、
こんなのが見える。Base64っぽいのでデコードすると、
admin:SCKOSEN{basic_is_unsecure}
SCKOSEN{basic_is_unsecure}
(問題文略 添付 pcapファイル)
ファイルを抽出すると、lock.zip っていうzipファイルとLenna.pngとかいう画像が与えられる。
lock.zipはパスワードがかかっていてひらけないが、stringsで文字列を見ていると、中にLenna.pngが入っていることがわかる。
既知平文攻撃が使えるのでpkcrackで開けると
SCKOSEN{k_p_t_a}
パスワードを奪取せよ
(添付 webサーバのURL)
「とうだい」ってワードを聞くと心が痛む。
添付のURLにアクセスすると、Hintとしてこんな感じのやつが貼られていた。
$try = false; $login = false; if( isset($_POST[‘name’]) && isset($_POST[‘password’])){ $name = htmlspecialchars($_POST[‘name’], ENT_QUOTES); $password = htmlspecialchars($_POST[‘password’], ENT_QUOTES); $db = new SQLite3(‘data.db’); $stmt = $db->prepare(“SELECT name FROM users WHERE name = ? AND password = ?“); $stmt->bindValue(1, $name, SQLITE3_TEXT); $stmt->bindValue(2, $password, SQLITE3_TEXT); $rows = $stmt->execute(); $row = $rows->fetchArray(); $try = true; $login = $rows && $row[‘name’]; $db->close(); }
$db = new SQLite3('data.db');
ってところが肝で、[添付のURLのアドレス]/data.db
とやると、SQLiteのデータベースファイルが落ちてくる。嬉しい。
strings data.db SQLite format 3 Qtableusersusers CREATE TABLE users(name, password) EadminSCKOSEN{database_bukkonuki!}
SCKOSEN{database_bukkonuki!}
(問題文略)
こんな感じの辛そうなJSがあった。
___ = window; __ = document; s = "shift"; m = ["addEventListener", "DOMContentLoaded", "createElement", "div", "textContent", "deobfuscate js and find the key", "body", "appendChild", "length", "join", "forEach", "parseInt", "toString", "toUpperCase"]; __[m[s]()](m[s](), () => { _ = __[m[s]()](m[s]()); _[m[s]()] = m[s](); __[m[s]()][m[s]()](_); (() => { __ = [18234125, 323835316891, 11523, 907531478812, 744387234, 44203240442235, 844002446169231, 4601, ]; ____ = { _: m[s](), ___: m[s]() }; ____.__ = `____`[[____._]]; __[m[s]()]((n, _) => { __[_] = `${___[m[s | s]](n, _ + 1)[m[s ^ s ^ 1]](0O22 << 1)[m[-~-~s]]()}{${n}}`; if (__[_][____["_"]] > 4){ __[_] = Array(__[_][____["_"]])[____["___"]]("_"); } }); })(); }, false);
なので
___ = window; __ = document; s = "shift"; m = ["addEventListener", "DOMContentLoaded", "createElement", "div", "textContent", "deobfuscate js and find the key", "body", "appendChild", "length", "join", "forEach", "parseInt", "toString", "toUpperCase"]; __[m[s]()](m[s](), () => { _ = __[m[s]()](m[s]()); _[m[s]()] = m[s](); __[m[s]()][m[s]()](_); (() => { __ = [18234125, 323835316891, 11523, 907531478812, 744387234, 44203240442235, 844002446169231, 4601, ]; ____ = { _: m[s](), ___: m[s]() }; ____.__ = `____`[[____._]]; __[m[s]()]((n, _) => { __[_] = `${___[m[s | s]](n, _ + 1)[m[s ^ s ^ 1]](0O22 << 1)[m[-~-~s]]()}{${n}}`; if (__[_][____["_"]] > 4){ console.log(__[_]); __[_] = Array(__[_][____["_"]])[____["___"]]("_"); console.log(__[_]); } }); })(); }, false);
って感じでconsole.logを使って吐いてくれるようにすると、
SCKOSEN{44203240442235}
こんな感じのやつがある。めんどくさそうなので、2行目はどう見ても自明に文字になる感じのやつ 0x~~~とか 0o~~~が入ると思うのと、
最後は(1)ってことだけを伝えて後輩に適当に組み合わせておいてと言っておく。
SCKOSEN{4c0bf259050d08b8982b6ae43ad0f12be030f191}
平成30年度 電気通信大学 情報理工学域 2類の学力試験を受けて合格してきました
編入受験のために本格的に対策を始めたのは4年生の1月です。
初期状態の自分は以下のような状態でした
・偏微分や重積分などの微分積分を習っていない(弊高専の情報科のカリキュラムに無い)
・一次変換から先の線形代数を習っていない(弊高専の情報科のカリキュラムに無い)
・複素解析・ラプラス変換・フーリエ解析などの応用数学を習っていない(弊高専の情報科のカリキュラムに無い)
・物理基礎を習った
・高校物理を習っていない(物理基礎から先の内容を知らない)
・力学を習っていない(弊高専の情報科のカリキュラムに無い)
・電磁気学を習っていない(弊高専の情報科のカリキュラムに無い)
・熱力学を習っていない(弊高専の情報科のカリキュラムに無い)
・受験向けの英作文を習っていない
・英検準2級レベルの英語の授業を受けた
・2年3月のTOEICで550点
とにかく何もかもが足りていないので必死こいて勉強しました。
数学と英語は明らかにできるようになっていた気がしましたが物理は全くダメでした。
過去問には一回も手をつけませんでした。
・マセマの微分積分・線形代数・複素解析・ラプラス変換・フーリエ解析・常微分方程式を1周
・編入数学徹底研究を1周
・編入数学徹底特訓を1周
・大学数学のための数学問題集を1周
・ベクトル・行列・行列式 徹底演習を1周
・TOEICの勉強 (4年3月のTOEICで810点)
・DUO 3.0 を1日 1/3周して、1か月で10周
・ドラゴンイングリッシュを1周
・工業英検準2級のために工業英語ハンドブックを2周
・鉄緑会 東大英単語熟語 鉄壁を3周
・大学入試英作文ハイパートレーニング 自由英作文編 1周
・大学入試英作文ハイパートレーニング和文英訳編 1周
・基礎物理学演習1,2を1周
昼ごはんを食べ過ぎて気持ち悪くなって椅子につまづいて転ぶなどしました。
・数学 例年通りの内容 10割
・英語 英文要約と英作文 10割(?)
・物理
片っぽが固定された棒にボールぶつけて回転させる時の運動
電荷を帯びた都合の良い円柱1本と2本の電場
ちょっと変な気体のサイクル(確か)
良くて2割とか3割
10分程度 試験官は3人
聞かれたこと
・志望理由
・卒研内容
・高専で頑張ったこと
・試験の出来
(物理が良くないと話したら、「確かに」みたいな反応をされていたのでもう点数は出ているらしい。)
・併願状況と順序
・大学卒業後の進路
・アピール
やっぱり物理にまで手が回らなかったな〜という感想。
数学について、何も知らない内容を勉強していくのにマセマはとても良いと感じました。
時間が足りなかった。もっと早く試験勉強を始めていればよかったのかもしれない。後悔。
大学に入る前に物理をしっかり勉強していきたい。あと半年しかないですが物理を頑張って勉強するぞ!
2016年5月19日から21日にかけ、和歌山県白浜で開催された第11回 情報危機管理コンテストに
チーム fukuitech として参加し、優勝、経済産業大臣賞を受賞しました。
www.riis.or.jp
競技内容について詳しく書くことができないので、大会公式の説明を引用する
参加チームの皆さんに顧客企業の情報システムの管理会社の役目を果たしてもらいます。競技時間中に、次々とトラブル(システム障害や顧客や外部の人からの苦情など)が発生します。これらのトラブルに対していかに適切な対処を行い、問題を解決できるかを競います。
知人に「1次予選を通過したのは良いが、メンバーの枠が2人分空いているから参加しないか?」と誘っていただいた。
情報セキュリティ技術についての知識に自信がなかったため、自分が参加してもいいのか悩んだが、
セキュリティ技術について勉強する良い機会でもあるし、競技プログラミング以外のコミュニティの雰囲気も知りたかったので、参加することに決めた。
サーバ管理の知識をつけた。
セキュリティに関しての勉強をした。
競技の内容について詳しく話すことはできないが、すごく冷えた。
まぁ2次予選落ちかな...とか思っていた。
メールで2次予選通過のメールが来ていることを知人から知らされて、とても驚いた。
メールを見て、冗談じゃないことを知り、声を出して笑った。
ただ、自分の実力で決勝戦に参加したらズタボロのボッコボコにやられて精神的に死ぬ羽目になるのではと思い、お腹がだいぶ痛くなった。
学校に公欠の申請を必死こいてやった。
手続きをしてくださった教員から「まぁここまでやったんだからなんか賞をですね...」のようなことを言われた。
結構プレッシャーになった。こんなでかい賞をとったんだからなんか期待してます(嘘)
また、2次予選での経験をもとに対策を行った。
大会内容は詳しく(ry
なので、それ以外の部分について書く。
はっきり言うと、大会以外の部分で大幅にHPやMPを削られた。
ホテルシーモア...ではなく、大会側が用意した別の民宿に4人で泊まった。
お風呂にムカデがいたとか、部屋に蚊がたくさんいたとか、部屋に冷蔵庫がないとか、コンセントが2口しかないとか、バスタオルが用意されてないとかとかとか!!!
ここまでの環境だとは聞いてなかったので、HP(体力)とかMP(気力)を大幅に削られた。せめてバスタオルがないことは書いておいて欲しかった。
次回からこのような環境になりそうな時は必ずバスタオルを持って、最悪野宿でも行けるような装備で行きたい(嘘)
さすがにお風呂に入れないのは困るので、近くの日帰り温泉でお風呂に入った。これでHPやMPをある程度回復できたのが優勝の一因かもしれない(?)
初日の夕食や、2日目の昼食に冷えたお弁当が出てHPやMPが削られた。
だが、2日目の夕食はバイキングでとても美味しかった。
この2つの理由で、「金沢から白浜まで長時間かけて移動して、しかも交通費も満額支給されず、さらに宿や食事でここまで辛い目にあうとか...。
絶対に経済産業大臣賞をとって元を取ってやる...」
という気持ちになった。さらにこの言葉をしばらくブツブツ呟いていた。
結果発表後、チームメイト氏に「まさか本当にたわしの言っていた通りになるとは思わなかった」とか言われた。
優勝 経済産業大臣賞を受賞しました。
正直経済産業大臣賞は取れないだろうなあとか思っていたため、死んだ目をして表彰式にいた。
経済産業大臣賞が取れた時は事態が全く飲み込めず、「これは夢なのでは」とか、「あーついに頭までおかしくなったかなぁ」とか思った。
1日経ってブログを書いている今でもまだ「なんか大変な賞をもらってしまった」程度の認識、やっぱり私は頭がおかしくなってしまったのだろうか。
CTFのプロの方々など、情報セキュリティのコミュニティと接することができたのはとても良い刺激になった。
セキュリティの分野にとても興味が持てたし、様々な企業がセキュリティ技術者を必要としていることがわかった。
今後はセキュリティの分野の勉強をしていきたい。
2015年の1月?にTOEICまでのつなぎとして受けたのがきっかけ
1次試験は合格していたが、2次試験はスキー旅行とかぶったため受けなかった
27年度第3回までに受けないと1次免除の資格が失効してしまうので、慌てて受けてきた
正直1年前のことなのであまり覚えていない。
確か出る順パス単なる単語帳を買って単語をひたすら覚えた気がする。
正答率80-90%くらいで合格した記憶
後輩と一回面接の本を音読した
かなりギリギリで合格
単語さえなんとか詰め込めば1次は通った。出る順パス単は覚えやすい。超オススメ。
あと日本人と日本人が日本人な英語で面接しているのがなんかシュールだった。これが実用英語。
出る順パス単を丸ごと覚える。
面接はとにかく喋る なんでもいいから喋る。