問題

記録

  • 目的
    • 面白い新入生の把握/確保/保護
  • 作製
    • SQLi
      • 作る側の難易度の都合
      • 解く側の楽しさ
        • 何らかの”ハッキング”っぽい感じがあるほうがよいという判断
    • 実装
      • nginx
      • php
    • 半日程度
  • 配置
    • VPN
  • 難易度
    • 十分簡単
    • ソースコード付き (重要)
    • 必要な知識は全て https://www.google.co.jp/search?q=hoge 等とlinkを張った
    • 友人らにtesterを頼んだ
      • ゲーム/VRの人間も解いてくれたので、難易度は適切であっただろう
  • 告知
    • 学内の掲示板に貼り出し
    • IPアドレスだけ書いた紙を貼った
      • どうすれば最も目を引くだろうかと考えた結果
      • とりあえずスマホのブラウザからアクセスなりしてみるだろう、という判断
  • 賞品
    • 申し訳程度
    • indexのページに書いた
  • 結果
    • 1ヶ月後
    • アクセスほぼなし
      • user agentがw3mなアクセスがあった
        • 教員?
        • 何者か気になる
      • indexは稀にアクセスがあったが、クエリはまったく飛んでいなかった
      • logは気が向いたときにしか確認してないから漏れがあるかも
    • 張り出した紙の、IPアドレスの数字がひとつだけ切り取られていた
      • 丁寧に長方形に切り取られていた
      • 数字ひとつが落ちただけなら、高々10回試行すれば当たる
      • 何のため?
      • やった人間が気になる 合ってみたい

反省

  • 明らかな失敗
  • 推測される理由
    • 技術が好きな人間がいなかった
      • 違うだろう
      • もし仮にそうだとしてもこれを理由にしていては意味がない
        • 人を発見したいのであって、ふるいにかけて排除したい訳ではない
        • いないならいないで、興味を持たせればよい
    • 問題が難しすぎた/面白そうでなかった
      • 違う気がする
      • そもそも問題まで辿り着いた人間がほぼいなかった
    • 張り出した紙がまずかった
      • かなり正しそう
        • 張り出した紙をそういう文脈の下で、技術に関心のない友人に見せたところ、「IPアドレスということは分かるが、だから何?」という反応を貰った
      • 次はQRコードにでもしようかな

XSS

直した。そのファイル自身のpathの取得のため$_SERVER['PHP_SELF']を使っていた部分があったが、$_SERVER['PHP_SELF']を使うとquery stringが入ってくるので、$_SERVER['SCRIPT_NAME']を(必要なら適切にnginxのconfigを弄って、urlの.phpより後ろの部分を削った上で)使わなければならなかった。必死でconfigを弄った。

phpは私には早すぎたらしい。