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 大佬批評指證
項目地址
總結
以上是生活随笔為你收集整理的ctf mysql hash传递_分享个 CTF 小工具 bruteHASH的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ldap基本dn_LDAP 中 DN C
- 下一篇: android 获取monkey日志_A