{"id":13841840,"url":"https://github.com/Peony2022/shiro_killer","last_synced_at":"2025-07-11T13:32:47.474Z","repository":{"id":41182944,"uuid":"488601600","full_name":"Peony2022/shiro_killer","owner":"Peony2022","description":"批量ShiroKey检测爆破工具","archived":false,"fork":false,"pushed_at":"2023-01-04T09:31:25.000Z","size":837,"stargazers_count":306,"open_issues_count":7,"forks_count":45,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-08-05T17:29:31.251Z","etag":null,"topics":["tools","web"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Peony2022.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-04T13:33:55.000Z","updated_at":"2024-08-05T02:15:38.000Z","dependencies_parsed_at":"2023-02-02T07:01:59.280Z","dependency_job_id":null,"html_url":"https://github.com/Peony2022/shiro_killer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peony2022%2Fshiro_killer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peony2022%2Fshiro_killer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peony2022%2Fshiro_killer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peony2022%2Fshiro_killer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Peony2022","download_url":"https://codeload.github.com/Peony2022/shiro_killer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225729705,"owners_count":17515157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tools","web"],"created_at":"2024-08-04T17:01:22.602Z","updated_at":"2024-11-21T12:30:29.671Z","avatar_url":"https://github.com/Peony2022.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Shiro_killer \r\n\r\n#### 正文\r\n\r\n#### 1. 用法\r\n在项目文件夹使用 `go build` 编译\r\n`ShiroKeyCheck.exe -f urls.txt` 批量扫描 `urls.txt` 中的目标\r\n\r\n*可选参数*\r\n\r\n\u003e*-ua User-Agent `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36`*\r\n\u003e\r\n\u003e*-m 发送请求的方式 `GET/POST`*\r\n\u003e\r\n\u003e*-content 以 `POST` 方式发送的内容(-m POST时有效)*\r\n\u003e\r\n\u003e*-timeout 每个请求的超时时间 `3`*\r\n\u003e\r\n\u003e*-interval 请求之间间隔的时间 `0`*\r\n\u003e\r\n\u003e*-proxy HTTP代理如 `http://127.0.0.1:8080`*\r\n\u003e\r\n\u003e*-key 指定需要检测的KEY文件*\r\n\u003e\r\n\u003e*-t 并发数量 `50`*\r\n\u003e\r\n\u003e*-k 标签指定keys文件*\r\n\u003e\r\n\u003e*-rm rememberMe 关键字的别名 `rememberMe`*\r\n\r\n#### 2. 优点\r\n\r\n- 单个目标爆破时间短，多目标并发检测平均速度更快\r\n- 检测准确率高\r\n- 内置大量已公开KEY且可自行拓展\r\n\r\n#### 3. 关键代码分析\r\n\r\n```\r\n\"main.go\"\r\n\r\nfunc KeyCheck(TargetUrl string) (bool, string) {\r\n    Content, _ := base64.StdEncoding.DecodeString(CheckContent)\r\n    isFind, Result := false, \"\"\r\n    if SKey != \"\" {\r\n    time.Sleep(time.Duration(Interval) * time.Second)\r\n    isFind, Result = FindTheKey(SKey, Content, TargetUrl)\r\n} else {\r\n    isFind = false\r\n    for i := range ShiroKeys \r\n{ // 遍历Key列表\r\n    time.Sleep(time.Duration(Interval) * time.Second)\r\n    isFind, Result = FindTheKey(ShiroKeys[i], Content, TargetUrl)\r\nif isFind {\r\n    break // 找到任意Key既返回结果\r\n}\r\n}\r\n}\r\n    return isFind, Result\r\n}\r\n    f, err := os.Open(UrlFile)\r\nif err != nil {\r\n    panic(err)\r\n}\r\n    defer f.Close()\r\n    rd := bufio.NewReader(f)\r\n    startTime := time.Now()\r\nfor {\r\n    UnFormatted, _, err := rd.ReadLine() // 逐行读取目标\r\n    if err == io.EOF {\r\n    break\r\n}\r\n    TargetUrl := string(UnFormatted)\r\n    if !strings.Contains(TargetUrl, \"http://\") \u0026\u0026 !strings.Contains(TargetUrl, \"https://\") {\r\n    TargetUrl = \"https://\" + TargetUrl\r\n}\r\n    wg.Add(1)\r\n    pool.Submit(func() { // 提交并发爆破任务\r\n    StartTask(string(TargetUrl))\r\n    wg.Done()\r\n})\r\n}\r\n    wg.Wait()\r\n\r\n\"functions.go\"\r\n\r\nif strings.ToUpper(Method) == \"POST\" {\r\n    req.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\r\n}\r\n    req.Header.Set(\"User-Agent\", UserAgent)\r\n    req.Header.Set(\"Cookie\", \"rememberMe=\"+RememberMe) // 设置请求头\r\n    return !strings.Contains(SetCookieAll, \"rememberMe=deleteMe;\"), nil // 检测是否包含\"deleteMe\"\r\n```\r\n\r\n![图片](https://github.com/Peony2022/shiro_killer/blob/main/%E8%BF%90%E8%A1%8C%E6%88%AA%E5%9B%BE1.png)\r\n![图片](https://github.com/Peony2022/shiro_killer/blob/main/%E8%BF%90%E8%A1%8C%E6%88%AA%E5%9B%BE2.png)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeony2022%2Fshiro_killer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPeony2022%2Fshiro_killer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeony2022%2Fshiro_killer/lists"}