プログラム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 が
不明なコマンドを完了しました