Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
bit4woo committed Jan 1, 2022
1 parent 0886aa0 commit e8e2b3e
Show file tree
Hide file tree
Showing 12 changed files with 102 additions and 28 deletions.
Binary file added README.assets/image-20211230190034976.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added README.assets/image-20220101172629795.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added README.assets/image-20220101173315536.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added README.assets/image-20220101173609844.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added README.assets/image-20220101173647192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 58 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,66 @@


# Fiora
## Fiora

LoL中无双剑姬的名字,她是一个善于发现对手防守弱点,实现精准打击的英雄
项目简介:LoL中的英雄无双剑姬的名字,她善于发现对手防守弱点,实现精准打击。该项目为PoC框架[nuclei](https://github.com/projectdiscovery/nuclei)提供图形界面,实现快速搜索、一键运行等功能,提升[nuclei](https://github.com/projectdiscovery/nuclei)的使用体验

项目地址:https://github.com/bit4woo/Fiora

项目作者:[bit4woo](https://github.com/bit4woo)

PoC-T的 脚本图形界面
视频教程:

技能独立运行,同时也可以用作burp插件。
## 安装运行

### 一、作为burp插件运行

1、访问https://github.com/bit4woo/Fiora/releases

2、下载最新jar包

3、如下方法安装插件

![image-20220101172629795](README.assets/image-20220101172629795.png)

4、如果你想使用最新的功能,可以使用如下方法自行打包。

```
git clone https://github.com/bit4woo/knife
cd knife
mvn package
```



### 二、作为独立程序运行

该程序即可作为burp插件运行,也可以作为独立程序运行。命令行下通过java启动程序的命令:

```
java -jar Fiora-202100220-jar-with-dependencies.jar
```

![image-20220101173315536](README.assets/image-20220101173315536.png)

程序截图

![image-20220101173647192](README.assets/image-20220101173647192.png)



## 注意说明

1、你需要自行安装nuclei到本地环境,并且将命令加入环境变量。安装方法可以参考[官方文档](https://nuclei.projectdiscovery.io/nuclei/get-started/#running-nuclei)

2、nuclei的模板文件存放的默认路径是当前用户路径下,即 YourUserHome/nuclei-templates。



## 使用方法

```
nuclei -t C:\Users\P52\nuclei-templates\cnvd\CNVD-2020-56167.yaml -u http://example.com -proxy http://127.0.0.1
nuclei -t C:\Users\P52\nuclei-templates\cnvd\CNVD-2020-56167.yaml -u http://example.com -proxy http://127.0.0.1
```

2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.bit4woo.burp</groupId>
<artifactId>Fiora</artifactId>
<version>20210917</version>
<version>v0.1</version>

<repositories>
<repository>
Expand Down
16 changes: 15 additions & 1 deletion src/GUI/MainGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import PoC.PoCPanel;
import burp.BurpExtender;
import burp.GlobalConfig;


public class MainGUI extends JFrame {
Expand All @@ -19,6 +20,8 @@ public class MainGUI extends JFrame {
protected PrintWriter stderr;
public static OptionsPanel optionsPanel;
public static String poctRootPath = System.getProperty("user.home")+File.separator+"nuclei-templates";
private static GlobalConfig globalConfig;


public static PoCPanel getPoCPanel() {
return pocPanel;
Expand All @@ -31,6 +34,14 @@ public static File getCurrentDBFile() {
public static void setCurrentDBFile(File currentDBFile) {
MainGUI.currentDBFile = currentDBFile;
}

public static GlobalConfig getGlobalConfig() {
return globalConfig;
}

public static void setGlobalConfig(GlobalConfig globalConfig) {
MainGUI.globalConfig = globalConfig;
}

/**
* Create the frame.
Expand All @@ -43,7 +54,7 @@ public MainGUI() {//构造函数
stdout = new PrintWriter(System.out, true);
stderr = new PrintWriter(System.out, true);
}

JTabbedPane tabbedWrapper = new JTabbedPane();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1174, 497);
Expand All @@ -52,6 +63,9 @@ public MainGUI() {//构造函数
tabbedWrapper.addTab("PoC", null, pocPanel, null);
//optionsPanel = new OptionsPanel();
//tabbedWrapper.addTab("Options", null, optionsPanel, null);

globalConfig = GlobalConfig.loadFromDisk();
GlobalConfig.showConfigToUI(globalConfig);
}

public MainGUI(String poctRootPath){
Expand Down
8 changes: 7 additions & 1 deletion src/PoC/LineTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@
import javax.swing.table.JTableHeader;
import javax.swing.table.TableRowSorter;

import GUI.MainGUI;
import GUI.TextAreaMouseListener;
import GUI.textAreaDocumentListener;
import PoC.search.History;
import PoC.search.LineSearch;
import burp.BurpExtender;
import burp.Commons;
import burp.GlobalConfig;

public class LineTable extends JTable
{
Expand Down Expand Up @@ -145,7 +147,11 @@ public JSplitPane tableAndDetailPanel(){
textAreaTarget = new JTextArea();
scrollPane.setViewportView(textAreaTarget);
textAreaTarget.addMouseListener(new TextAreaMouseListener(textAreaTarget));
textAreaTarget.getDocument().addDocumentListener(new textAreaDocumentListener(textAreaTarget,BurpExtender.getGlobalConfig()));
GlobalConfig config = MainGUI.getGlobalConfig();
if (config != null) {
textAreaTarget.getDocument().addDocumentListener(new textAreaDocumentListener(textAreaTarget,config));
}


JTabbedPane ResponsePanel = new JTabbedPane();
RequestDetailPanel.setRightComponent(ResponsePanel);
Expand Down
18 changes: 14 additions & 4 deletions src/PoC/PoCPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,15 @@ public boolean LoadData(String dir){
return false;
}
}

public static void updateTemplate() {
try {
Process process = Runtime.getRuntime().exec("nuclei -ut");
process.waitFor();//等待执行完成
} catch (Exception e) {
e.printStackTrace();
}
}

public JPanel createButtonPanel() {
buttonPanel = new JPanel();
Expand Down Expand Up @@ -221,6 +230,7 @@ public void actionPerformed(ActionEvent e) {
buttonPanel.add(buttonFresh);
buttonFresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
updateTemplate();
LoadData(MainGUI.poctRootPath);
lblStatus.setText(titleTableModel.getStatusSummary());
buttonSearch.doClick();
Expand All @@ -232,10 +242,10 @@ public void actionPerformed(ActionEvent e) {
buttonProxy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String originProxy = BurpExtender.getGlobalConfig().getProxy();
String proxy = JOptionPane.showInputDialog("Proxy To Use", originProxy);
if (proxy!= null && proxy.contains(":")) {
BurpExtender.getGlobalConfig().setProxy(proxy.trim());
String originProxy = MainGUI.getGlobalConfig().getProxy();
String proxy = JOptionPane.showInputDialog("Proxy To Use: eg. http://127.0.0.1:8080", originProxy);
if (proxy!= null) {
MainGUI.getGlobalConfig().setProxy(proxy.trim());
}
} catch (Exception e1) {
e1.printStackTrace();
Expand Down
16 changes: 3 additions & 13 deletions src/burp/BurpExtender.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public class BurpExtender implements IBurpExtender, ITab,IContextMenuFactory,IEx
private static String Author = "by bit4woo";
private static String github = "https://github.com/bit4woo/Fiora";
private static MainGUI gui;
private static GlobalConfig globalConfig;
private static final Logger log=LogManager.getLogger(BurpExtender.class);

public static PrintWriter getStdout() {
Expand Down Expand Up @@ -60,15 +59,6 @@ public static MainGUI getGui() {
return gui;
}


public static GlobalConfig getGlobalConfig() {
return globalConfig;
}

public static void setGlobalConfig(GlobalConfig globalConfig) {
BurpExtender.globalConfig = globalConfig;
}

public static String getExtenderName() {
return ExtenderName;
}
Expand Down Expand Up @@ -96,9 +86,9 @@ public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks)
callbacks.registerContextMenuFactory(this);
callbacks.registerExtensionStateListener(this);

globalConfig = GlobalConfig.loadFromDisk();

gui = new MainGUI();
GlobalConfig.showConfigToUI(globalConfig);

SwingUtilities.invokeLater(new Runnable()
{//create GUI
public void run()
Expand Down Expand Up @@ -126,6 +116,6 @@ public List<JMenuItem> createMenuItems(IContextMenuInvocation invocation) {

@Override
public void extensionUnloaded() {
globalConfig.saveToDisk();
MainGUI.getGlobalConfig().saveToDisk();
}
}
8 changes: 4 additions & 4 deletions src/run/RunNucleiAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

import org.apache.commons.io.FileUtils;

import GUI.MainGUI;
import PoC.PoCPanel;
import burp.BurpExtender;

public class RunNucleiAction{

Expand All @@ -28,7 +28,7 @@ public static String genCommand(List<String> targets,String poc) {
para = "-t "+poc.trim()+" -l "+tmpTargets.getAbsolutePath();
}
if (targets.toString().toLowerCase().contains("http://") || targets.toString().toLowerCase().contains("https://")) {
String proxy = BurpExtender.getGlobalConfig().fetchHttpProxy();
String proxy = MainGUI.getGlobalConfig().fetchHttpProxy();
para = para + " -proxy "+ proxy;
}

Expand All @@ -55,7 +55,7 @@ public static String genWorkflowCommand(List<String> targets,String poc) {
para = "-w "+poc.trim()+" -l "+tmpTargets.getAbsolutePath();
}
if (targets.toString().toLowerCase().contains("http://") || targets.toString().toLowerCase().contains("https://")) {
String proxy = BurpExtender.getGlobalConfig().fetchHttpProxy();
String proxy = MainGUI.getGlobalConfig().fetchHttpProxy();
para = para + " -proxy "+ proxy;
}

Expand All @@ -82,7 +82,7 @@ public static String genTagsCommand(List<String> targets,String tags) {
para = "-tags "+tags.trim()+" -l "+tmpTargets.getAbsolutePath();
}
if (targets.toString().toLowerCase().contains("http://") || targets.toString().toLowerCase().contains("https://")) {
String proxy = BurpExtender.getGlobalConfig().fetchHttpProxy();
String proxy = MainGUI.getGlobalConfig().fetchHttpProxy();
para = para + " -proxy "+ proxy;
}

Expand Down

0 comments on commit e8e2b3e

Please sign in to comment.