Note

技術メモとか日記

WaniCTF 2020 writeup Web問

WaniCTF 2020

とても久しぶりのCTF,とりあえずWeb問を解いた.
SQL問は解けなかったので他の方のWriteupをカンニングした.

1. DevTools_1

問題文の通り,開発者ツール使ってDOMを見るとフラグが書いてあった.

2. DevTools_2

引き続き問題文通り,開発者ツール使ってDOMを書き換えるとフラグが表示された.

3. Simple Memo

フラグが書いてあるファイル名は問題文に書いてある.
https://simple.wanictf.org/flag.txt であっさり取れた.

4. striped table

メモが作れるサイトでXSSする問題. 普通にやってもうまくいかない.
divタグの中に入れ子にすると実行された. 単純なのしか対応されてないっぽい?

5. SQL Challenge 1

ここからは自力で解けなかった.
よくあるSQLiで必要なスペースやシングルクォーテーション,パイプが使えない.

がダブルクォーテーションが使えた..
"1"or"1" とかでflagが取れる.

5. SQL Challenge 2

数字とアルファベットしか使えなくなった.これ無理じゃない?

2つの解き方を見かけた.

解き方1.
クエリは SELECT * FROM anime WHERE years = $year なので year=years で終わり.
「あっ」感がすごい...

解き方2.
year=0 にする. なんでこれでうまく行くんだ?

調べてみると,文字列と数値の比較は数値に変換してから行われ,文字列が数値以外で始まる場合は0に変換されるぽい.
MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.2 式評価での型変換

C++でundefined reference

状況

C++でPyTorchとPocoを使用したプログラムをコンパイル(cmake)したら「undefined reference to Poco::....」

原因

使用した2つのライブラリ(PyTorch,Poco)のバイナリフォーマットが異なっていた. そして,これを考慮した適切なオプションがコンパイル時に指定できていなかった.

バイナリフォーマットが異なるのは,ライブラリをコンパイルしたgccのバージョンによるもの (gcc5以上が新しいフォーマット,gcc4以下が古いフォーマット.今回,PyTorchは古いフォーマット,Pocoは新しいフォーマット). 古いバージョンでコンパイルしたライブラリを使用する場合,「-D_GLIBCXX_USE_CXX11_ABI=0」を付けてコンパイルする必要がある. PyTorchのcmakeファイルでは,全ファイルに対してこのオプションを付けているため,Pocoも古いフォーマットとして認識されてしまい,参照エラーが出ていた.

解決策

  1. ライブラリを作成する際のコンパイラのバージョンを統一する.( PyTorchはバイナリが配布されておりコンパイル方法がよく分からないため古いコンパイラでPocoを作り直すとうまくいった.)
  2. PyTorchとPocoを同時に使用するファイルが存在しない場合は,Pocoを使用するファイルで以下を記述する.
#undef _GLIBCXX_USE_CXX11_ABI

AtCoderで緑になるまでにやったこと

f:id:yotuha4869:20190820234707p:plain 先日やっと緑になりました.

やったこと

  • 2018/09 初参加 きっかけは忘れた
  • 2018/11 就活で競技プログラミング的な問題に触れたのがきっかけで再開
  • ~2019/06 とりあえずできるだけ毎週参加
  • 2019/07~ 過去問を本格的に解き始める.蟻本読み始める.

過去問解き始めたおかげで慣れてきた.やはり精進は正義だった.

AtCoderに必要そうと感じた能力(個人の見解です)

  • 実装力 正確に動くプログラムを速く書く能力
  • 考察力 問題を読み解き,解決する能力
  • 数学力 アルゴリズム,パターン列挙,最大公約数,最小公倍数など
  • モチベーションの維持

実装力と数学力は過去問解きまくれば伸ばせそう.
考察力は自分で解いたあとに頭いい人の提出コード読んで勉強させてもらうくらい?頭良すぎて毎回感動する
モチベーションの維持はガチ勢のツイートを読んだり,時間設定して問題を解いてみたりすると楽しかったので続けられそう.

おわりに

緑になるまで時間かかりすぎてつらい
そこそこプログラミングには自信があったのですが自分のレベルを思い知らされました... まあペースは人それぞれと言い聞かせつつ,焦らず水色を目指していきます!