Giter VIP home page Giter VIP logo

pocassist's Introduction

pocassist

pocassist是一个 Golang 编写的全新开源漏洞测试框架。

  • 简单易用
    • 只需要在前端编辑,即可生成poc对批量目标进行测试
    • 单二进制文件,无依赖,也无需安装
  • 性能优秀
    • 支持高并发,多重并发控制,通过使用 ants实例化协程池,复用 goroutine
    • 多重内存复用,尽可能小的内存占用
  • 规则体系
    • 完全兼容xray,但又不仅仅是xray。除了支持定义目录级漏洞poc,还支持服务器级漏洞、参数级漏洞、url级漏洞以及对页面内容检测,如果以上还不满足你的需求,还支持加载自定义脚本。

使用之前务必先阅读使用文档!

🏠使用文档 ⬇️下载最新版本

快速开始

像数 1, 2, 3 一样容易

# 启动服务
./pocassist

# 浏览器访问 
http://127.0.0.1:1231

建议使用pocassistdb作为漏洞库。⬇️下载漏洞库最新版本,并在config.yaml sqlite项配置路径。

Demo

登录页

登录页

规则首页

规则首页

规则详情

规则详情

支持一键导入xray规则

upload-yaml

单条规则靶机测试

单条规则靶机测试

漏洞描述首页

漏洞描述首页

漏洞描述详情

漏洞描述详情

新建批量扫描任务

新建扫描任务

任务状态

任务首页

扫描结果

扫描结果

结果首页

结果首页

组件首页

组件首页

常见问题

  1. 自定义配置。pocassist首次运行时将在当前目录生成config.yaml,引擎启动后实时监控配置文件变化,配置文件修改后无需重启,即热加载
  2. 用户名密码错误:检查数据库配置,以及数据库auth表。建议使用pocassistdb作为漏洞库
  3. 支持前后端分离部署。前端源码、nginx配置示例可参考pocassistweb
  4. 其他使用问题请先阅读使用文档

免责声明

未经授权,使用pocassist攻击目标是非法的。pocassist仅用于安全测试目的。为避免被恶意使用,本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。

404StarLink 2.0 - Galaxy

pocassist 是 404Team 星链计划2.0 中的一环,如果对 pocassist 有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。

Stargazers

如果您觉得本项目对您有所帮助,请不要吝啬一个⭐哦!

Stargazers over time

参考项目

pocassist's People

Contributors

chris-ju avatar ibreaker avatar jweny avatar moond4rk avatar testwill avatar zuoyou0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pocassist's Issues

导入规则后,提示成功,但规则没有增加

导入yaml规则后,提示上传成功,但实际没有成功写入库中,举个例子
poc-yaml-aspcms-id-sqli.yml
name: poc-yaml-aspcms-id-sqli manual: true transport: http rules: r0: request: method: GET path: /plug/comment/commentList.asp?id=-1%20unmasterion%20semasterlect%20top%201%20UserID,GroupID,LoginName,Password,now(),null,1%20%20frmasterom%20{prefix}user follow_redirects: true expression: response.status == 200 && response.body.bcontains(bytes((string("line1"))))&&response.body.bcontains(bytes((string("line2")))) expression: r0() detail: author: xiao1hu links: - https://www.yuque.com/peiqiwiki/peiqi-poc-wiki/bg59x4 Affected Version: ASPCMS

小部分poc报错no such host问题原因

controller.go中DoSingleRuleRequest函数有点问题,fixedFastReq.URI().Update(curPath)这里执行之后应该是丢掉了host头,我这里测试都是丢掉了然后报错no such host,需要手动fixedFastReq.URI().SetHost(curHost),不知道为什么你程序大部分都能正常发包而只有小部分POC才会报错。

提议!

既然是一个漏洞测试框架,我想能不能实现一个提供go包给使用者使用,就是单独把漏洞测试的部分开放一个接口,供使用者导入到自己的go程序中,这样会更加方便,且有益于漏洞库的生态更新

设置代理后,扫描结果不同

哈喽,我这边在测试sonar-cve-2020-27896漏洞。
不设置代理,返回包有乱码,系统扫描判断为“不存在漏洞”;而设置代理后,返回包数据正常,系统扫描判断为“存在漏洞”。是不是代表可能存在“设置代理会影响扫描结果”的情况?

PS:直接使用浏览器访问时,返回数据正常,sonar是存在漏洞的。

POST存在换行和发包速率问题

application/x-www-form-urlencoded格式的POST数据,有换行的情况,需要strings.Replace(postdata, "\n", "\r\n", -1),否则发包不完整。
rate.NewLimiter()函数设置值有问题,第一个值应为MaxQps,第二个为瞬间并发数值。

请给点排错建议

linux部署出现问题,报错:cannot execute binary file,root登录,文件chmod 777,部署Linux64包,机器环境centos7.4 ,数据库用宝塔搭建,目前无法排错,希望给点建议;Windows本机 部署,没问题。

对于大量的poc请求导致服务的饱和从而出现timeout的现象

发现一个问题,单个运行POC可以扫出漏洞,如果运行所有的POC,能扫出漏洞的那个poc会出现
{"level":"error","time":"2022-04-20 14:56:28.136","linenum":"/root/croto/poc/rule/controller.go:173","msg":",POC: poc-yaml-Disclosure_dsStore [rule/controller.go: DoSingleRuleRequest error] dialing to the given TCP address timed out"}
猜测是
// Warning: DoTimeout does not terminate the request itself. The request will
// continue in the background and the response will be discarded.
// If requests take too long and the connection pool gets filled up please
// try using a Client and setting a ReadTimeout.
可是设置了ReadTimeout 还是会出现问题
不得其解???

【功能优化建议】

  1. POC模板能否支持 变量+raw模式(nuclei)
  2. 支持nuclei插件(已经有issues, 强烈支持哈哈)
  3. 漏洞描述,影响组件可以和并到一个模板页面,然后POC编辑可以放为单独页面
  4. 任务列表提交任务后,可以将任务划分到一个组,要不然删除的时候太多了,还有就是没有继续扫描,重新扫描等功能
  5. 程序启动Banner,可以提醒下初始默认的账号密码(简单且有丢丢用)

仅为建议,择优采纳

优化建议

1、批量删除不存在漏洞的结果
2、存在漏洞结果支持批量导出

优化建议

  • 移除https://github.com/jweny/pocassist/blob/master/pic.assets/.DS_Store;
  • 添加完整nginx参考配置文件;
  • 优化web使用体验,如登录之后页面空白,需刷新,添加poc和漏洞说明完成后页面自动关闭;
  • 添加docker自动化部署;
  • 添加poc的表达式 expression添加选择功能或添加帮助信息;
  • 数据库密码加密存储;
  • 增加重置管理员密码的功能。

POC优化建议

建议增加POC批评导入和导出的功能,便于POC文件增补;

优化建议

优化建议
建议提升加载文件速度 测试了许多次 大约都在500条url或者1000条ip以上 导入txt都会卡死 服务器16g的内存直接满 也不算卡死 只能说 页面卡着不动。但是添加完之后 运行主程序的cmd会一直抛出报错的问题 并不会扫描

关于script规则

师傅您好,我想问下关于这个script的缺陷有修复吗,或者有啥思路可以分享一下吗

任务卡在running状态

1、创建任务
2、选择自定义多个规则,选定多个weblogic相关poc
3、导入url列表文件,几百个左右的测试url
4、开始任务

这样开始任务后所有任务都会卡在running状态,但是流量监控中并没有出入站流量。

Release 1.0.5 or 1.0.4?

发布版本是 Release 1.0.5
实际下载[pocassist_darwin_amd64.zip ,解压后运行发现提示版本是
1.0.4,是忘记修改了?

优化建议

批量扫描后发现漏洞不直观,建议增加保存结果功能

加载 thinkphp 5.* 插件报错

报错信息:

2021/10/06 18:33:10 [Recovery] 2021/10/06 - 18:33:10 panic recovered:
runtime error: invalid memory address or nil pointer dereference
/usr/local/go/src/runtime/panic.go:221 (0x4516c6)
panicmem: panic(memoryError)
/usr/local/go/src/runtime/signal_unix.go:735 (0x451696)
sigpanic: panicmem()
/home/myh0st/tools/pocassist/api/routers/v1/scan/scan/scan.go:206 (0xc48573)
List: c.JSON(msg.ErrResp("插件加载失败" + err.Error()))
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:165 (0x9f175e)
(*Context).Next: c.handlersc.index
/home/myh0st/tools/pocassist/api/middleware/jwt/jwt.go:47 (0x9f15d3)
JWT.func1: c.Next()
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:165 (0x8b4981)
(*Context).Next: c.handlersc.index
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:99 (0x8b496c)
CustomRecoveryWithWriter.func1: c.Next()
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:165 (0x8b3be6)
(*Context).Next: c.handlersc.index
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:241 (0x8b3bc9)
LoggerWithConfig.func1: c.Next()
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:165 (0x8b311d)
(*Context).Next: c.handlersc.index
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:489 (0x8b2da5)
(*Engine).handleHTTPRequest: c.Next()
/root/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:445 (0x8b2904)
(*Engine).ServeHTTP: engine.handleHTTPRequest(c)
/usr/local/go/src/net/http/server.go:2878 (0x6a255a)
serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
/usr/local/go/src/net/http/server.go:1929 (0x69dc07)
(*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
/usr/local/go/src/runtime/asm_amd64.s:1581 (0x46c0c0)
goexit: BYTE $0x90 // NOP

功能建议

建议添加批量删除任务与扫描结果

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.