ctf mysql hash传递_分享个 CTF 小工具 bruteHASH

别问,问就是为了 CTF

思路源于一次三小时十二题的内部 CTF 竞赛,其中一道简单 MISC 给出明文范围(字母数字)和 MD5 开头,要求穷举出 flag——这当然不难,python 十几行代码搞定,但是运行出结果竟然用了近 20 分钟,感觉十分没有性价比啊!!

于是想找一个高性能(C/C++)指定格式 HASH 穷举工具,呃 无果……

为了 CTF 需要构造 HASH 时能够“一把梭”,于是有了年轻人的第一个“轮子”

功能

随机或穷举指定格式 HASH 值,输出符合条件的"明文 HASH"

支持指定明文格式

不限定明文格式随机字符穷举

自定义穷举字符集

CTF 常见 HASH(MD4/MD5/SHA1)

设置 HASH 开头、结尾或包含字符串

帮助

Usage of bruteHASH.exe:

-a string

设置明文格式,支持?占位符,如 flag{?????}(Linux 下字符串请使用引号包裹)

-aa

不限制明文,随机穷举指定格式 HASH

-b string

按顺序组合穷举字符集(字符集顺序会严重影响爆破速度,请尽量精确)

d 数字 | l 小写字母 | u 大写字母 | h 十六进制字符集 | p 特殊字符 | r 可见字符

例如:指定爆破字符集为数字、字母 -b=dlu

-bb string

自定义穷举字符集

-c string

设置目标 HASH 值包含字符串

-e string

设置目标 HASH 值结束字符串

-i int

设置目标 MD5 位数 16 位或 32 位 (default 32)

-m int

设置 HASH 算法

0 MD4 | 1 MD5 | 2 SHA1 (default 1)

-s string

设置目标 HASH 值起始字符串

示例

随机字符穷举,HASH 中包含"6377666"的 SHA1

> bruteHASH -aa -c=6377666 -m=2

随机字符穷举,"0e"开头的 MD4

> bruteHASH -aa -s=0e -m=0

用自定义字符集穷举"c???new???"明文,32 位 MD5 包含字符串"3b605234ed"

> bruteHASH -a="c???new???" -bb=abcdefnutuvw_ -c=3b605234ed

用数字、大写字母穷举明文"flag{?????}"(?代表未知 5 位),16 位 MD5 开头为"b6dff925"

> bruteHASH -a="flag{?????}" -b=du -s=b6dff925 -i=16

声明

CTF 偶尔需要用到"特殊"HASH,比如 MISC 中已知个别明文字符和部分 HASH,要穷举 flag 明文; WEB 中构造 MYSQL 注入,要用指定字符集构造一个以"xxxxxxxx"开头的 MD5 ; PHP 弱类型 HASH 比较需要构造"0e"开头的 HASH 等等。但"爆破"HASH 的工具不少,一个好用的穷举生成 HASH 的工具都没有

虽然"人生苦短,该用 python",但为了兼顾性能和开发效率,做了一个艰难的决定——

学用 golang 试一试?

首次使用 golang,本着能跑就行的初心聚合"云智慧"完成——

代码不精简有 BUG 且效率未达最佳,如需吐槽请 fork 后 show your code...

毕竟刚学首用,对 golang 很多特性还没了解,我知道代码很渣但目前已尽力,不知道从功能性、稳定性、效率等方面如何才能更优化,诚邀 golang 大佬批评指证

项目地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA怎么实现网页退出系统_java后台实现js关闭本页面,父页面指定跳转或刷新操作...

关闭本页面,跳转到百度response.setCharacterEncoding("gbk");PrintWriter outresponse.getWriter();out.print("");out.print("");关闭本页面,刷新父页面response.setCharacterEncoding("gbk");PrintWriter ou…

huffman树java_HuffmanTree - java实现

该思想借鉴于《2019版数据结构高分笔记(c语言版)》- 第7版最近事多,有时间会把思路在这里阐述一下代码思路如下/*** add() 输入names[] weights[]* sort()排序* generateTree()生成树* preOrder() 先序遍历生成节点编码code* inOrder() 前序遍历输出编码** root* / …

java crontriggerbean_java – 使用JobStoreTX为石英聚类配置CronTriggerFactoryBean

我们正在使用Quartz 2.1.5;我们设置了以下属性:org.quartz.jobStore.classorg.quartz.impl.jdbcjobstore.JobStoreTXorg.quartz.jobStore.driverDelegateClassorg.quartz.impl.jdbcjobstore.CloudscapeDelegateorg.quartz.jobStore.useProperties trueorg.quartz.j…

利用文本文档运行java程序_java代码创建文件夹和读取文本文件txt的内容(可运行)...

java代码创建文件夹和读取文本文件txt的内容(可运行)读取txt 的内容 和 创建一个 新的文件夹package com.sec.file;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;public class ReaderFile {public static void main(String[] args) throws Ex…

java ssh 那一层应该捕获异常_java ssh异常(大神来看看啊)

提一个小问题呢!ssh框架整合时 我看别人的代码都不对异常做处理,这是为什么呢 如不比如Dao操作数据库的代码中都没用throws异常,那service层中的应该是取不到抛出的异常才对啊,那这样在service层事务的交给Spring来管理的service层取不到异常…

java web 润乾报表教程_润乾报表开发 基础教程.ppt

润乾报表开发 ——基础教程 主格和附属格 单元格进行扩展的过程中,缺省情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其它格(其右/下的格)的主格,而其右(下)的单元格是被动跟随复制的,被…

java 布尔逻辑运算符_Java运算符

Java语言提供许多操作符。操作符是特殊的符号(symbol),它对一个或者两个、三个的操作数进行运算,然后返回一个结果,最简单的就像我们一年级学到的 -号。一般地,可以将运算符分为四大类:算数运算符、位运算符、关系运算…

java7 异常继承_Java基础7-异常;jar包

使用接口进行如下程序设计个人电脑(PC)具有PCI插槽,可以插入PCI卡。显卡、声卡、语音卡都可以作为PCI卡插入PCI插槽中PC,PCI,slot,VideoCard,SoundCard, VoiceCardinterface PCI{public void pci();}class VideoCard implements PCI{public void pci(){System.out.p…

Java自动化获取页面主题_基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

1. 启动浏览器前边有详细介绍启动三种浏览器的方式(IE、Chrome、Firefox);private WebDriver driver null;private String chromeDriverDir "D:\\workspace\\A_Test\\resource\\chromedriver.exe";/*** 打开谷歌浏览器;*/public void openCh…

java字符串压缩js解压_接口实现后台GZIP压缩,pako.js 前端解压

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;public class GZIPUtils {/*** 字符串的压缩** param str* 待压缩的字符串* return 返回…

java list初始值null_关于list集合存储null的问题

工作中,遇到list集合存储null的问题,不确定list能否存储null值。于是写一些demo测试list,set,table,及map存储null的问题。1.list之arraylist1 public static voidmain(String[] args) {2 String string null;3 List list new ArrayList();4 …

js java 反射机制_java 类加载机制和反射机制

一.类的加载机制jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。(1)加载将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一…

java fx输出_JavaFX中具有输入和输出参数的并发后台任务或服务

宁愿这是一个非常简单的概念,但是由于我对JavaFX的并发性完全陌生.我一直在努力理解这个概念.在构建一个非常简单的JavaFX应用程序时,我想在后台执行一些冗长的任务,并使UI免受冻结.在下面的示例中,我试图创建一个简单的后台任务服务,然后使用ControlsFX Dialog在主UI窗口上显示…

pod 挂载点 mysql_Pod挂载(Secret )

一种特殊的Volume: Projected Volume ,你可以把它翻译为“投射数据卷”。Ps:Projected Volume 是 Kubernetes v1.11 之后的新特性在 Kubernetes 中,有几种特殊的 Volume,它们存在的意义不是为了存放容器里的数据&#…

lambda 流 peek java_JDK8 流与λ表达式

λ表达式什么是λ表达式λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或者语句块。public int add(int x, int y) {return x y;}转换为λ表达式(int x, int y) -> x y;去除参数类型(x, y) -> x y;无参 以及 只有一个参…

理解java虚拟机工作后了解吗_JAVA入门到再次入门——深入理解JAVA虚拟机(二)|七日打卡...

前言为什么叫做入门到到再次入门请参考前一篇或个人博客,在此不再赘述,嗯哼,了解了JVM的基本运行流程以及内存结构,算是初步认识了JVM,跟着课本往前走,继续了解根据JVM的内存模型探索java当中变量的可见性以…

java访问错误404_如何解决 Java web 项目中的 404 错误

在使用 Tomcat 进行 Java Web 开发的时候,经常会遇到以下 HTTP 404 错误:错误代码为 HTTP 404(未找到),描述信息是:“The origin server did not find a current representation for the target resource or is not willing to di…

java double 的精度_Java Double的精度问题

Java.text类 DecimalFormatjava.lang.Objectjava.text.Formatjava.text.NumberFormatjava.text.DecimalFormatvoid setMaximumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最大数字位数。void setMinimumFractionDigits(int newValue) …

java餐饮管理系统图片,基于jsp的酒店餐饮管理系统-JavaEE实现酒店餐饮管理系统 - java项目源码...

基于jspservletpojomysql实现一个javaee/javaweb的酒店餐饮管理系统, 该项目可用各类java课程设计大作业中, 酒店餐饮管理系统的系统架构分为前后台两部分, 最终实现在线上进行酒店餐饮管理系统各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类酒店餐饮管…

php 验证码一直不对,ThinkPHP验证码老是出错怎么办

ThinkPHP验证码老是出错的解决办法:1、找到服务器php配置文件php.ini在网站根目录下建一个info.php文件。例如:D:\wwwRoot\wp 这个是网站的根目录,在此目录下,新建一个txt文档,输入如下代码:然后另存为info…