Help us understand the problem. What is going on with this article?

8946 Take#38

More than 1 year has passed since last update.

問題

http://www.hackerschool.jp/hack/take38.php

image.png

解いてみた

  • 答えが書いてあるのでそのまま入力してみます。

image.png

  • さすがにダメですね。
  • URL直接入力してみてはどうでしょう。

image.png

  • これもダメでした。
  • ソースを見てみましょう。

image.png

  • ボタンを押したときにtake38_LoadFile()が呼ばれますが、ソースには定義されていません。
  • ajax_take38.jsを見てみましょう。

image.png

  • ここに定義されていました。
  • 中の処理を要約すると入力欄に入力したページにアクセスして、その戻り値を表示する。なかったら、エラーを表示する。といったところでしょうか。
  • ということで、ここではあまり参考になりません。
  • wiresharkを使って通信を見てみます。

image.png

  • 入力したURLにアクセスするわけではなくて、入力した文字はパラメータで送られるようです。
  • が、それ以上参考になることはなさそうです。
  • いろいろネットで調べた結果、PHPにファイル名をパラメータで送るときにヌルバイト攻撃っていうのに気を付けましょう。というのをいくつか見つけました。
  • やってみます。

image.png

  • やりました。

image.png

  • 結局渡した引数がどのように使用されているのかはよくわかりませんでしたが、一応解けてよかった。
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away