package api import ( "github.com/gin-gonic/gin" "HFish/core/report" "net/http" "HFish/error" "HFish/utils/conf" "HFish/core/dbUtil" "HFish/core/rpc/client" "HFish/utils/is" ) // 上报WEB蜜罐 func ReportWeb(c *gin.Context) { name := c.PostForm("name") info := c.PostForm("info") secKey := c.PostForm("sec_key") ip := c.ClientIP() if (ip == "::1") { ip = "127.0.0.1" } apiSecKey := conf.Get("api", "sec_key") if secKey != apiSecKey { c.JSON(http.StatusOK, error.ErrFailApiKey()) } else { // 判断是否为 RPC 客户端 if is.Rpc() { go client.ReportResult("WEB", name, ip, info, "0") } else { go report.ReportWeb(name, "本机", ip, info) } c.JSON(http.StatusOK, error.ErrSuccessNull()) } } // 上报暗网蜜罐 func ReportDeepWeb(c *gin.Context) { name := c.PostForm("name") info := c.PostForm("info") secKey := c.PostForm("sec_key") ip := c.ClientIP() if (ip == "::1") { ip = "127.0.0.1" } apiSecKey := conf.Get("api", "sec_key") if secKey != apiSecKey { c.JSON(http.StatusOK, error.ErrFailApiKey()) } else { // 判断是否为 RPC 客户端 if is.Rpc() { go client.ReportResult("DEEP", name, ip, info, "0") } else { go report.ReportDeepWeb(name, "本机", ip, info) } c.JSON(http.StatusOK, error.ErrSuccessNull()) } } // 蜜罐插件API func ReportPlugWeb(c *gin.Context) { name := c.PostForm("name") info := c.PostForm("info") secKey := c.PostForm("sec_key") ip := c.PostForm("ip") apiSecKey := conf.Get("api", "sec_key") if secKey != apiSecKey { c.JSON(http.StatusOK, error.ErrFailApiKey()) } else { // 判断是否为 RPC 客户端 if is.Rpc() { go client.ReportResult("PLUG", name, ip, info, "0") } else { go report.ReportPlugWeb(name, "本机", ip, info) } c.JSON(http.StatusOK, error.ErrSuccessNull()) } } // 获取黑名单 黑客IP 列表 func GetIpList(c *gin.Context) { sql := `select ip from hfish_info GROUP BY ip;` result := dbUtil.Query(sql) c.JSON(http.StatusOK, error.ErrSuccess(result)) } // 获取钓鱼列表 API func GetFishInfo(c *gin.Context) { sql := `select * from hfish_info ORDER BY id desc` result := dbUtil.Query(sql) c.JSON(http.StatusOK, error.ErrSuccess(result)) }