1

対話するサービスがあるとします。netcat を使用すると、次のようになります。

> nc 127.0.0.1 8080
hello
hi how are you?

フォーマット文字列などの攻撃を実行するために、このサービスとのやり取りを自動化したいと考えています。そこで、Python スクリプトを作成しましたが、それを機能させるのは本当に大変でした。コードは次のとおりです。

    t = Telnet(HOST, PORT)
    t.write('2\n')
    for _ in xrange(10)): print(t.read_some())
    t.write('3\n')
    for _ in xrange(12)): print(t.read_some())

ここでの問題は、サービスからの応答です。このスクリプトに期待していた動作は次のとおりです。

  1. 「こんにちは」などのリクエストを送信する
  2. 応答を取得します。「こんにちは、お元気ですか?」

この場合、サービスは非常に単純ですが、オプションのメニューまたはウェルカム画面を出力するサービスがあるとします。これらすべてを読み、送信したコマンドへの応答を手動で見つける必要がありました ( for _ in xrange を使用)。 ..)。

要約すると、入力コマンドの応答のみを考慮して、そのようなサービスとやり取りする最良の方法は何ですか?

Pythonがこのことに適しているかどうかはわかりません。ソケットを使用してみましたが、関数 recv のせいで telnet よりもさらに悪かったです。

4

1 に答える 1