Home

Awesome

poc-runner

CHANGE LOG

<img alt="gitleaks badge" src="https://img.shields.io/badge/protected%20by-gitleaks-blue">

前往下载

DESC

asciicast

XRAY POC RUNNER (Open Source Version)

这是一个 XRAYYAML 开源执行器(虽然网上已经有很多个开源实现了)

可执行文件体积 非常小(例如 windows-amd642 MB

主要特性:

反连内置了 dnslog.cnprojectdiscovery/interactsh 无需配置直接使用

注意:本项目 不提供 任何 POC 规则文件(仅提供执行引擎)

POC 仓库: https://github.com/chaitin/xray/tree/master/pocs

仅供个人学习和研究使用,请勿用于非法用途

Quick Start

基础使用 poc-runner -r [poc].yml -t [target]

加入 -debug 打印所有请求响应

加入 -proxy 参数启动代理

HTML 报告页面

反连

默认使用 dnslog.cn 作为反连

你可以使用 -reverse interact.sh 指定使用 projectdiscovery/interactsh

由于网络原因,建议搭配代理使用

./poc-runner -r [poc].yml -t http://target -reverse interact.sh -proxy socks5://127.0.0.1:10808

API

Get

go get github.com/4ra1n/poc-runner/api@0.1.2

Example

package main

import (
	"context"
	"fmt"

	"github.com/4ra1n/poc-runner/api"
)

var poc = `name: poc-yaml-test
transport: http
set:
  rand: randomInt(200000000, 210000000)
rules:
  r0:
    request:
      cache: true
      method: POST
      path: /test
      headers:
        Content-Type: text/xml
      body: test
      follow_redirects: false
    expression: response.status == 404
expression: r0()`

func main() {
	ctx := context.Background()
	runner, err := api.NewPocRunner(ctx)
	if err != nil {
		return
	}
	report, err := runner.Run([]byte(poc), "https://example.com")
	if err != nil {
		return
	}
	fmt.Println(report)
}

Advance Example

func main() {
	ctx := context.Background()
	// NEW ADVANCE POC RUNNER
	runner, err := NewPocRunnerEx(
		ctx,                        // CONTEXT
		"socks5://127.0.0.1:10808", // SOCKS PROXY
		time.Second*10,             // TIMEOUT
		true,                       // DEBUG MODE
		"dnslog.cn",                // REVERSE CONFIG (dnslog.cn | interact.sh)
		log.DebugLevel,             // LOG LEVEL
	)
	if err != nil {
		return
	}
	// RUN POC
	report, err := runner.Run([]byte(poc), "https://example.com")
	if err != nil {
		return
	}
	fmt.Println(report)
}

BUILD

WINDOWS: 参考 build.bat

LINUX: 参考 .github/build.yml

CONTRIBUTE

Thank you for your interest in contributing to the poc-runner project

欢迎师傅们贡献 poc-runner 项目,所有 PR 都会经过 CODE REVIEW

注意:请尽量不要引入第三方库,尽可能使用标准库实现功能,本项目的宗旨是轻量

SUPPORT

type

yaml typegolang typesupport version
intint0.0.1
stringstring0.0.1
boolbool0.0.1
bytes[]byte0.0.1
mapmap[string]string0.0.1
objectinterface0.0.1

response variables

nametypesupport version
response.statusint0.0.1
response.headersmap0.0.1
response.content_typestring0.0.1
response.bodybytes0.0.1
response.body_stringstring0.0.1

string function

nameargsreturnsupport version
bsubmatchbytesmap0.0.1
submatchstringmap0.0.1
bmatchesstringmap0.0.1
matchesstringmap0.0.1
containsstringbool0.0.1
icontainsstringbool0.0.1

bytes function

nameargsreturnsupport version
bcontainsbytesbool0.0.1
icontainsbytesbool0.0.1

builtin function

nameargsreturnsupport version
bytesstringbytes0.0.1
stringanystring0.0.1
substrstring,int,intstring0.0.1
sleepintbool0.0.1
randomIntint,intint0.0.1
randomLowercaseintstring0.0.1
randomUppercaseintstring0.0.1
md5stringstring0.0.1
sha1stringstring0.0.1
sha256stringstring0.0.1
base64bytes|stringstring0.0.1
urldecodebytes|stringstring0.0.1
get404Pathnullstring0.0.1
newReversenullobject0.0.1
printobjectbool0.1.0

reverse variables

namereturnsupport version
reverse.urlstring0.0.1
reverse.rmistring0.0.1
reverse.ldapstring0.0.1
reverse.domainstring0.0.1

reverse function

nameargsreturnsupport version
waitintbool0.0.1

TEST

以下 POC 已在真实漏洞环境测试通过

plugin nameresultremark
tomcat-cve-2017-12615-rce.yml/
spring-cve-2016-4977.yml/
apache-httpd-cve-2021-40438-ssrf.yml/
apache-httpd-cve-2021-41773-path-traversal.yml/
apache-http-cve-2021-41773-rce.yml/
coldfusion-cve-2010-2861-lfi.yml/
confluence-cve-2021-26084.yml/
activemq-cve-2016-3088.yml/
couchdb-cve-2017-12635.yml/
discuz-wooyun-2010-080723.yml/
docker-api-unauthorized-rce.yml/
elasticsearch-cve-2014-3120.yml/
elasticsearch-cve-2015-1427.yml/
elasticsearch-cve-2015-5531.yml/
jenkins-cve-2018-1000861-rce.yml/
joomla-cve-2017-8917-sqli.yml/
kibana-cve-2018-17246.yml/
laravel-cve-2021-3129.yml/
phpmyadmin-cve-2018-12613-file-inclusion.yml/
solr-cve-2017-12629-xxe.ymlreverse
solr-cve-2019-0193.yml/
weblogic-cve-2017-10271.ymlreverse
weblogic-cve-2019-2725.yml/
weblogic-cve-2019-2729-1.yml/
weblogic-cve-2019-2729-2.yml/
weblogic-cve-2020-14750.yml/
weblogic-ssrf.yml/
zabbix-cve-2016-10134-sqli.yml/

Star

<div align="center"> <img src="https://api.star-history.com/svg?repos=4ra1n/poc-runner&type=Date" width="600" height="400" alt="Star History Chart" valign="middle"> </div>

THANKS

部分代码参考: https://github.com/raylax/rayx

感谢