Code Monkey home page Code Monkey logo

tsojanscan's Introduction

TsojanScan

一个集成的BurpSuite漏洞探测插件

First

本着市面上各大漏洞探测插件的功能比较单一,因此与TsojanSecTeam成员决定在已有框架的基础上修改并增加常用的漏洞探测POC,它会以最少的数据包请求来准确检测各漏洞存在与否,你只需要这一个足矣。

Usage

1、加载插件


2、功能介绍

(1)面板


自定义黑名单,插件不扫描黑名单的url列表,进行Reg匹配优先级第一。


(2)主动探测


比如探测非根目录/,目录下面需要加/

3、fastjson >=1.2.80探测

(1)本地环境

(2)预查询DNSlog接口

(3)扫描

(4)判断准确版本

1.2.80版本探测如果收到了两个dns请求,则证明使用了1.2.83版本,如果收到了一个 dns 请求,则证明使用了1.2.80版本。

4、DNSLog查询漏报

注意⚠️:扫描结束后才会在BurpSuite的Target、Dashboard模块显示高危漏洞,进程扫描中无法进行同步,但可以在插件中查看(涉及到DoPassive方法问题)。


Update

更新说明 - v1.4.5

  1. 增加nacos漏洞被动扫描,CVE-2021-29441 & QVD-2023-6271 ;
  2. 增加jpath主动模块化扫描,集合SpringBoot Env、Druid、Swagger 相关无害化POC;
  3. 更新dnslog平台,删除不可用的dnslog,默认设置Ceye dnslog平台;
  4. 修复新版本BurpSuite版本报错问题 #23 ;
  5. 修复删除测试垃圾代码,优化插件稳定性。

Tips

由于工作原因,更新会比较慢,各位师傅提的issues,都会一条条仔细回复,新功能上线前团队内部会进行大量本地、实战项目测试所以周期较长,请各位师傅谅解。。ORZ

更新说明 - v1.4.4

  1. 优化代码结构;

  2. 修复weblogic弱口令误报bug;

  3. 增加otf后缀不扫描规则;

  4. 删除asix/happaxis.jsp扫描规则;

  5. 增加sql语法错误的页面回显扫描模块,只显示sql错误显示(参数后面增加单引号、双引号、反斜线,去查看有没有SQL错误语句)

更新说明 - v1.4.3

  1. 修复首次加载插件占用过多资源的问题造成假死进程状态。

  2. 增加dnslog:DNSlog平台Xssx1,首次加载插件使用Ceye,后续启动则默认使用上次应用的dnslog,若网络环境较好,推荐使用Xssx1、Microsoftz方式。

  3. 增加主动/被动 Ueditor .net 文件上传扫描模块。

更新说明 - v1.4.2

1.增加Ceye dnslog平台,默认加载为Microsoftz,需要手动加载Ceye后,下次再打开将自动加载上次Apply应用的dnslog。

2.优化添加配置设置不显示插件的bug。

更新说明 - v1.4.1

  1. 修复dnslog平台,更换api接口。
  2. 版本号未修改,下次更新上传。

更新说明 - v1.4

  1. 增加 laravel 漏洞扫描、增加 laravel 主动扫描。
  2. Issue 首字母大写(强迫症福音)。
  3. 增加自定义每个请求之间延时的功能。
  4. 增加SQL注入扫描、增加SQL注入主动扫描(MySQL报错,时间盲注SQL全系列)。
  5. 修复Text4shell某些头部不扫描的问题。
  6. 修复主动扫描时已存在的漏洞不会重复添加的问题。
  7. 修复dnslog平台,更换api接口为dnslog.rest。

更新说明 - v1.3

  1. 增加thinkphp多语言rce漏洞扫描。
  2. 优化thinkphp多语言rce探测数据包,减少发包数量。

更新说明 - v1.2

  1. 增加Fastjson参数扫描,并增加Fastjson主动扫描。
  2. 修改引入的fastjson库版本为1.2.83,防止被反制。
  3. 删除自己添加的bp api,改为maven库导入模式。
  4. 增加axis服务接口扫描。

更新说明 - v1.1

  1. 增加Domain黑名单设置,可手动添加域名让插件对该域名进行判断是否为黑名单,从而不对其进行漏洞探测,来减少多余的探测进程影响渗透过程。。
  2. 黑名单模式添加方式:google.com或者google,127.0.0.1或者127.0.0.1:8080;之前的扫描进程不会中断,下一个域名或者ip开始进行判断。
  3. Reset表示恢复默认黑名单状态,也就是当前初始化状态。
  4. apply表示当你启用BlackList功能时,需要apply加载。

更新说明 - v1.0

  1. 增加druid未授权扫描。
  2. 修复log4j只扫描 已有头部与容易出现问题头部取交集 的问题。
  3. 修复SpringBoot Env、swagger、druid在同一文件中导致的发现druid则不再探测其他漏洞的问题。
  4. 修改dnslog请求次数,改为仅在插件开启时请求一次,方便查询dnslog结果。
  5. 不扫描dnslog平台(某个家伙Yyy连dnslog都自己扫了)。
  6. 增加了spring cloud gateway扫描,但没加漏洞检测。
  7. 修复了spring cloud SPEL漏洞不报的问题,增加/functionRouter接口扫描。
  8. 修复只取host不取port导致同一域名不同端口会跳过扫描的问题。
  9. 修复fastjson扫描无法通过dnslog获取结果的问题。
  10. 修复匹配URL后缀时使用包含的方式,改为以xx后缀结尾。
  11. 修改log4j和text4shell为不扫描.asp/.php/.aspx等后缀。
  12. 增加ThinkPHP主动自定义目录扫描 ○ 比如:想扫描/Think5/目录的话,Repeater请使用GET /Think5/ HTTP/1.1; ○ 缺点:如果想主动扫描根目录或public目录的话,Repeater请使用根目录GET / HTTP/1.1。
  13. 修改结果窗口的请求和响应分割线,将其保持在中间的位置。
  14. 增加Weblogic主动扫描(这个也有类似ThinkPHP的自定义目录扫描)。

更新说明 - v0.1

  1. 修改dnslog部分,将ceye删除,创建了testmail.buzz(已修复)。
  2. 增加Text4shell漏洞探测。
  3. 增加springboot信息泄露扫描记录,防止扫描重复路径。
  4. 增加配置窗口,替代config.json文件。

ToDo

  • 增加swagger-resource的扫描与匹配规则。
  • 修复路径中包含.js即跳过扫描的问题。
  • 增加druid的扫描配置。
  • 增加springboot扫描绕过部分(后跟.json后缀、增加/绕过方式)。
  • 增加log4j扫描的头部字段。
  • 增加spring漏洞扫描(core没加)。
  • 增加log4j的404路径扫描,未测试,没找到测试环境。
  • 增加fastjson扫描规则。
  • 增加ThinkPHP Scan。
  • 修改sql注入扫描 - 后续慢慢来,工程量太大。
  • 增加weblogic检测poc。
  • 删除Level Make功能。
  • 修改scannedURL,改为每个POC都有自己的scannedURL并单独检测。
  • 增加fastjson检测(参数中的)。
  • 增加shiro扫描key - 比较占用时间,决定不加。
  • 增加log4j、Text4shell、fastjson的延迟检测 - 决定不加,手动探测吧。
  • 修改bp的interface,改为2022的interface,目前issue无法同步到dashboard那里。
  • 设置ThinkPHP扫描每个目标仅扫一次。
  • 设置weblogic扫描每个目标仅扫描一次。

Thanks

部分代码参考来源:

https://github.com/pmiaowu/BurpShiroPassiveScan

https://github.com/pmiaowu/BurpFastJsonScan

https://github.com/l1ubai/GyScan

https://github.com/whwlsfb/Log4j2Scan

END

欢迎各位师傅提Issue。。。

tsojanscan's People

Contributors

thecryinggame 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

tsojanscan's Issues

增加去重功能

相同路径不同数据包会报出相同的漏洞,导致相同的漏洞出现多次,建议增加去重功能。同时也可以减少发包量。

1.4.5仍然异常报错呢

java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:85)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1516)
at burp.ck3.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:85)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1516)
at burp.ck3.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Ueditor 扫描出错java.lang.NumberFormatException: null

关于dnslog的一个小建议

首先感谢作者们的努力让我工作又可以轻松一截。不过我在使用过程中有个小建议,可否能设置为自定义dnslog(ceye之类的)或者采用备用dnslog的的方式。目前工具自带的dnslog出现“initDomain failed: Failed to connect“的情况。

插件卡顿

您好,我在使用的过程中burp2023.7专业版使用插件的时候 有时候会扫到一些成果的时候点开插件查看就会出现卡顿,不知道其他小伙伴会不会出现这种情况呢

Shiro 和 Fastjson 扫描出错

fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
shiro 判断出错java.lang.NullPointerException: Cannot invoke "burp.api.montoya.http.message.responses.HttpResponse.headers()" because "" is null
shiro 判断出错java.lang.NullPointerException: Cannot invoke "burp.api.montoya.http.message.responses.HttpResponse.headers()" because "" is null
shiro 判断出错java.lang.NullPointerException: Cannot invoke "burp.api.montoya.http.message.responses.HttpResponse.headers()" because "" is null
shiro 判断出错java.lang.NullPointerException: Cannot invoke "burp.api.montoya.http.message.responses.HttpResponse.headers()" because "" is null
shiro 判断出错java.lang.NullPointerException: Cannot invoke "burp.api.montoya.http.message.responses.HttpResponse.headers()" because "" is null
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1

域名黑名单批量添加

添加域名的黑名单只能一个个域名的添加,可不可以一次性加完所有的黑名单?

burp 2023.7版本报错

能正常加载插件,但是测试pikachu的时候,有明显的sql报错语句未检测出。而且插件那里会报错:java.lang.NumberFormatException: Cannot parse null string
at java.base/java.lang.Integer.parseInt(Integer.java:630)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:198)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1436)
at burp.Zm3y.passiveAudit(Unknown Source)
at burp.Zst5.run(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

sql注入误报严重

sql注入报错,特别是时间盲注总是出错,实际上放在参数中,因为测试payload自带的空格会导致payload根本起不到作用,因而误报严重
image

实战三场红蓝,快准狠,误报难免,期待后续版本

导入burp1.7或2020版本报错,1.4.4

java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:85)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1436)
at burp.r5d.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:85)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1436)
at burp.r5d.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at burp.ScanFun.SQLIScan.ParamEchoScan(SQLIScan.java:198)
at burp.BurpExtender.doPassiveScan(BurpExtender.java:1436)
at burp.r5d.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

log4j被动扫描导致一直请求dns地址

在插件中配置dns地址后,被动用log4j去扫描地址。后续几天没使用burp过,一直看到目标去请求log4j-payload的请求,这是什么原因?流量太大了

burpsuite UI

target 、 proxy 前面的图标是怎么弄的?

fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1

fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
fastjson 扫描出错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: ")�"
fastjson 扫描出错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: "�ޭ"
fastjson 扫描出错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: ">�"

Log4j漏洞结果不准确

在扫描中有大量的扫描,然后提供的漏洞位置不准确。
例如:
漏洞位置为请求头中的Accept,但是在VulPanel中展示的结果记录的是其他位置的。

这样的情况导致在扫描的时候获取准确结果只能开启logger++根据dnslog的回显地址查找准确的漏洞信息。

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.