Giter VIP home page Giter VIP logo

log4j2scan's Introduction

Log4j2Scan

This tool is only for learning, research and self-examination. It should not be used for illegal purposes. All risks arising from the use of this tool have nothing to do with me!

dnslog.cn is unable to access the interface from time to time due to the number of requests. If you are unable to scan, please try change dnslog platform from UI.

English | 简体中文

Log4j2 Remote Code Execution Vulnerability, Passive Scan Plugin for BurpSuite.

Support accurate hint vulnerability parameters, vulnerability location, support multi-dnslog platform extension, automatic ignore static files.

Vulnerability detection only supports the following types for now

  • Url
  • Cookie
  • Header
  • Body(x-www-form-urlencoded, json, xml, multipart)

Build

Maven and JDK 11.0 or later is recommended

$ mvn package

ChangeLog

2021/12/15

v0.9
  1. add GoDnslog backend, thx for @54Pany .
  2. add fuzz setting ui.
  3. add poc setting ui.
  4. add Body(json, xml, multipart) fuzz.
  5. opt header guess-fuzz logic.

2021/12/14

v0.8.1
  1. bypass dnslog.cn filter.
v0.8
  1. add backend setting panel.
  2. add RevSuit-DNS backend.

2021/12/13

v0.7
  1. add RevSuit-RMI backend.
  2. fix domain toLowerCase by server can't match issue.

2021/12/12

v0.6
  1. add static-file ignore.
  2. add mulit poc support.
  3. add burpcollaborator dnslog backend,default use dnslog.cn.

2021/12/11

v0.5
  1. add header fuzz.
v0.4
  1. add rc1 patch bypass.

Screenshot

Acknowledgements

Some of the code in the plugin is borrowed from the following projects

https://github.com/pmiaowu/BurpShiroPassiveScan/

log4j2scan's People

Contributors

jhhd88 avatar jkme avatar log4she11 avatar no-github avatar whwlsfb 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

log4j2scan's Issues

打包失败

public class Ceye implements IBackend {
    OkHttpClient client = new OkHttpClient().newBuilder().
            connectTimeout(3000, TimeUnit.SECONDS).
            callTimeout(3000, TimeUnit.SECONDS).build();
    String platformUrl = "http://api.ceye.io/";
    String rootDomain = "xxx.ceye.io";
    String token = "xxxx";
public Log4j2Scanner(final BurpExtender newParent) {
     this.parent = newParent;
     this.helper = newParent.helpers;
     this.pocs = new IPOC[]{new POC1(), new POC2(), new POC3(), new POC4(), new POC11()};
     this.backend = new Ceye("xxx.ceye.io", "xxxx");
     if (this.backend.getState()) {
         parent.stdout.println("Log4j2Scan loaded successfully!\r\n");
     } else {
         parent.stdout.println("Backend init failed!\r\n");
     }
 }

这样配置会导致打包失败,如果我直接在Log4j2Scanner中使用this.backend = new Ceye();可以打包,但收不到bp警告

优化建议

目前在安全测试过程中发现一些系统存在响应延迟的问题,有时会延迟几小时甚至几天,建议作者大大增加一个可选项,在发送payload的时候增加外带域名信息。

Dnslog init failed!

Hello!

I've added the .jar file to my Burp Extensions extender tab and I get this following error:

initDomain failed: www.dnslog.cn: No address associated with hostname

自定义添加poc

在测试过程中发现 一些网站存在cdn或者waf会进行拦截请求,,但是目标是存在漏洞的,,需要手动添加bypass绕过poc进行测试,希望可以添加手动增加插件poc的功能 这样测试起来会方便很多效率也会提高。

建议

建议加上json格式参数的漏洞扫描

poc有点问题

${jndi%3aldap%3a//1639124684979z9ZTn./233266}

点后面没东西,可能是没有加载到dnslog的域名

大佬看到回一下 感谢

这是咋用的 就bp抓包就然后工具就自己扫了呗 但是我看历史流量 没有payload啊。。。 我也不知到使用没,不太会用 大佬可以教我一下吗 还有群满了。。。想加

建议添加GoDnslog端口号的选项

国内的vps使用80端口必须备案域名才能访问,然而插件里面又没有提供更改端口号的选项,而是直接访问vps的80端口查询dns记录。所以如果自建的godnslog服务器在国内的话这个插件就用不了了。

内网检测版本

之前基于大佬的0.7版本写了个内网扫描的,但是paramfuzz里面有些问题。 问下这个0.9版本的RevSuitRMI是给内网用的么?
微信群进不去 求拉vx:Coder19

自定义head头

我测试的是靶机,log4j2 漏洞的请求头的触发点环境,请求头 X-Api-Version字段

像这种需要发送到重放然后添加head的包是不是无法检测?

dnslog其他格式

你好,作者大哥,能不能再添加一个dnslog.cn方式类似dnslog接口
只需要自己填自己的一个 identifer 和url。不是写死的token。url的格式可以各种自定义,token只是url的一小部分而已。
 url可以是:
http://www.MDNS.com/repoonsetoken=xxxxxxxx
http://www.MDNS.com/xxxxxxxx/*.xxxMDNS.com


比如:
https://github.com/f0ng/log4j2burpscanner这个dns自定义的添加方式

比如
随机字符.aaaa.com
然后再 www.mydnslog.cn 里面匹配     随机字符.aaaa.com 是否存在


emmm,关于ceye的一点小问题

我在测试的时候发现,如果ceye上没有收到http类型请求,只接收到DNS请求的话,就无法在burp上反馈探测出log4j2的RCE,要锁定就会变得相当麻烦,是否可以增添一下对ceye的dns类型的type的支持呢?

问题

image
在靶场尝试,一直都是这样,使用的ceye的dnslog

JNDI: WAF Bypass

jndi:
jn${env::-}di:
jn${date:}di${date:':'}

j${k8s:k5:-ND}i${sd:k5:-:}
j${main:\k5:-Nd}i${spring:k5:-:}
j${sys:k5:-nD}${lower:i${web:k5:-:}}
j${::-nD}i${::-:}
j${EnV:K5:-nD}i:
j${loWer:Nd}i${uPper::}

I think its time to add more waf bypass since jndi: part most likely blocked by waf right now
https://twitter.com/ymzkei5/status/1469765165348704256

suggestion

建议一次性在数据包中添加所有的请求头字段,比如X-Originating-IP、Client-IP、X-Forwarded-For全部放到一个请求包中,不然对一个数据包,插件要发送上百个请求太慢了(或者在GUI界面允许用户选择是否这么做)

erro

Display when I import the plug-in
Backend init failed!
image

已不兼容burpsuite 2022.9.1

日志如下:

Log4j2Scan v0.12
Log4j2Scan loaded successfully!

Scanning: http://123.58.224.8:30596/hello?payload=111
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
Scan complete: http://123.58.224.8:30596/hello?payload=111 - No issue found.
Scanning: http://123.58.224.8:30596/
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
java.lang.IllegalArgumentException: method GET must not have a request body.
Scan complete: http://123.58.224.8:30596/ - No issue found.
Log4j2Scan loaded successfully!

Log4j2Scan loaded successfully!

Scanning: http://123.58.224.8:30596/hello?payload=111
Scan complete: http://123.58.224.8:30596/hello?payload=111 - No issue found.

已经无法正常发包,logger无发包记录。

这个错误是什么

burp.utils.ParamReplace@5cea84c9
burp.utils.ParamReplace@ed658a0
burp.utils.ParamReplace@23b61398
burp.utils.ParamReplace@52a161d
burp.utils.ParamReplace@dee16bd
burp.utils.ParamReplace@31c15cf8
burp.utils.ParamReplace@22f8a38b
burp.utils.ParamReplace@7737c33
很多 有时又没有

优化建议

发现对一些静态资源也会注入payload,像一些图片、CSS、js脚本、视频等响应类型可以过滤掉

问题

必须要自己搭建godnslog才可以使用嘛

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.