2

プログラムVulnserverでバッファ オーバーフローを引き起こす Java プログラムを作成しようとしています。

4094 文字を超える文字列を送信すると、コマンドが 2 つの文字列として受信されます。8188 文字などで 3 つの文字列に再度分割します。

なぜこれを行うのですか?そして、どうすればそれを止めることができますか? コマンド TRUN に続いて 5000 A を送信しようとしています。perl プログラムで動作するため、受信プログラムではありません。

 package fuzzer;

 import java.io.FileNotFoundException;
 import java.io.PrintWriter;
 import java.net.Socket;
 import java.util.Scanner;


 public class VulnserverFuzz {

public static Socket s;
private static String Command = "TRUN ";//Command TRUN

public static void main(String[] args) throws FileNotFoundException{


    PrintWriter pri = null;
    try {
        s = new Socket("127.0.0.1", 9999);
        pri = new PrintWriter(s.getOutputStream(), true);

    } catch (Exception e) {e.printStackTrace();}
    (new Thread(new VulnThread())).start();//Starts thread to listen for response

    Scanner input = new Scanner(System.in);
    for(int k=0; k<5000; ++k){Command += "A";}// Add 5099 A's to Command


    String bre = (Command);
    pri.println(bre);

    pri.flush();

  }
 }

応答:
TRUN が
不明なコマンドを完了しました

4

1 に答える 1

0

私はマニュアルを読んでいませんでしたが、サーバーから得た応答は単一のコマンドの応答であると思います。

You TRUN AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...run - コマンドを実行しようとしましたAAAAAAAAAAAAAAA...

応答は次のとおりです。 -コマンドTRUN Completedを実行したことを示します。・引数( )に指定されたコマンドが不明であることを示します。TRUN
Unknown CommandAAAAAAAAAA...

コードでリクエストを分割する理由はありません。

コマンドを送信しTRUN AAAて確認してみてください。同じ出力が得られるはずです。

于 2012-10-03T11:20:02.493 に答える